Как стать автором
Обновить
41
1
Сергей Цыпанов @tsypanov

Разработчик

Отправить сообщение

«У нас клиенты жалуются, что у них вот такой, казалось бы, очень простой код ни с того, ни с сего просел на новой джаве»

try {
    int newByte = newContent.read();
    int oldByte = oldContent.read();
    while (newByte != = 1 && oldByte != -1 && newByte == oldByte) {
        newByte = newContent.read();
        oldByte = oldContent.read();
    } contentChanged = newByte != oldByte;
} catch (IOException e) {
    contentChanged = true;
}

ИМХО, вполне ожидаемо, ибо нечего побайтно из стримов (пусть даже и буферизировнных) читать. Тут и без рантайма на уровне самой джавы проблемы могут вылезти.

"Мы с тобой на разных уровнях".

У каждого разраба свои конфиги собранные за последние 2 года и для каждого из них - это уже свой уникальный отпечаток пальца. Ну и вот этот новый человек начинает собирать свой уникальный отпечаток и разбираться в проекте, как есть.

Вижу тут попытку криворукость отдельной команды выдать за какие-то системные проблемы в ИТ в целом.

Да, действительно, странно получается. Может упор на производительность делали? Стандарт ведь ещё бородатых годов.

Кандидат знает, как работают процессоры.

Какая именно особенность работы процессора использована в том коде?

Почему сразу костыль? Я слышал от коллеги, что у них практиковался подход запуска JVM вообще без сборки мусора для полного исключения пауз. Приложение запускается на сотнях узлов, работает, а потом тупо умирает с ООМЕ, и всё начинается заново.

Естественно, порядок оплаты нельзя вот так просто взять и поменять в одностороннем порядке. При этом суд обязал финнов оплатить то, что они не выбрали по договору, так что в итоге 1:1.

Куда интереснее то, что этим же решением суд обязал стороны продолжать переговоры о заключении нового договора.

Возвращаясь к теме Стокгольмского арбитража:

"14 ноября 2022 года было принято решение по итогам арбитражного разбирательства ad hoc в Стокгольме между ООО «Газпром экспорт» и финской компанией «Gasum Oy» (далее – Газум).

Арбитражный трибунал в своем решении, помимо прочего, обязал «Газум» выплатить «Газпром экспорту» задолженность в размере более 300 миллионов евро за поставки газа и в связи с неисполнением обязательства «бери или плати», а также проценты за просрочку оплаты.

Кроме того, трибунал признал издание Указа Президента РФ № 172 от 31.03.2022 г. о переходе на оплату за газ в рублях обстоятельством форс-мажора по контракту.

Таким образом трибунал подтвердил правомерность приостановки поставок природного газа в случае неосуществления покупателем оплаты в рублях в соответствии с Указом Президента РФ № 172 от 31.03.2022 г.

Арбитраж также обязал стороны продолжить переговоры по контракту для урегулирования ситуации с дальнейшими поставками газа."

https://t.me/gazprom/1018

Прорыв Днепрогэса не обязательно означает прорыва плотин выше по Днепру. Выше я указал, что пройдя 2 с лишним км высота волны уменьшилась с 12 до 1,5 метров. От Запорожья до Энергодара вниз по течению более полусотни километров, а ширина водохранилища более 20 километров. И потом, АЭС же не на уровне воды находится и не на самом берегу. ИМХО, куда опаснее для ЗАЭС прорыв плотины Каховской ГЭС, что приведёт к обмелению уже Каховского моря и создаст проблемы с охлаждением.

Я тоже интересовался вопросом, и воду таки предварительно спустили, не всю, разумеется. Цунами тоже было, как и затопление плавней (Каховского водохранилища в то время ещё не было), но разумеется оно не было 30-метровым. Общий перепад высоты ДнепроГЭСа составляет всего 37 метров, а высота пролома и вовсе 20 метров и имела ширину 175 метров.

Сразу после взрыва волна была высотой 12 метров, она сразу начала рассеиваться, а когда достигла острова Хортица (который почти не пострадал), составляла всего 1,5 метра. К плавням высота «цунами» составляла всего 1 метр, дальше и того меньше. А это уже мало чем отличалось от сезонных разливов реки.

Якобы "смытые" прибрежные сёла и сегодня существуют за исключением нескольких хуторов находившихся в плавнях.

Несколько слов о погибших двух армиях и кавалерийском корпусе. Отвод этих войск начался 17 августа по приказу командующего Южным фронтом, и переводились они на рубеж обороны вдоль реки Ингулец. Для них были подготовлены понтонные переправы, и 22 августа войска были успешно переправлены, а это состоялось уже через несколько дней после взрыва плотины. 

Не затопит. Гипотетическое цунами при прорыве ДнепроГЭСа сильно преувеличено в масштабах. В 1941 при отступлении плотину взорвали, предварительно спустив воду. Итог на снимке, где видно, что перепад совсем небольшой.

Ничего особо жёсткого нет, просто не смогли посмотреть в 1995 году в завтрашний день )

Дальше идёт ссылка на запись в constant pool, где хранится имя текущего класса (интересно зачем, ведь оно по текущему пути легко определяется...)

Рискну предположить, что для избавления от необходимости читать и разбирать текущий путь.

Ссылка допустима только одна, так что множественное наследование в принципе не предусмотрено в JVM.

По-моему тут маленькая неточность: множественное наследование запрещает JLS (спецификация языка), а не ВМ.

@RestController
@RequestMapping("/api/v1")
public class HealthStatus {
   private final Logger log = LoggerFactory.getLogger(HealthResource.class);
   //...
}

Скажите, а чем вызвано явное приписывание логгеров в коде, у нас же Ломбок прикручен и мы можем использовать @Slf4j?

@Repository
public interface OrderRepository extends MongoRepository<Order, String> {
}

@Repository здесь лишний: ЕМНИП, Спринг подхватывает любой интерфейс унаследованный от CrudRepository, JpaRepository и т.п.

Спасибо за пояснение. А такие платформы бывают?

Не очень понял, почему она должна меняться? Исходный набор обрабатываемых данных остаётся тем же, в данном случае это char[] / byte[]его размер тот же безотносительно того, считаем ли мы long или int.

Так а что от этого меняется? 64-битный лонг останется 64-битным, а размер ссылки останется подробностями реализации, разве нет?

Это-то как раз понятно, детали реализации. А вот 32 бита на хеш-код больше похоже на один из жёстких косяков разработчиков языка из серии методов wait()/notify()/notifyAll() у всех объектов.

Я бы задал другой вопрос: почему вообще Object.hashCode() возвращает int, а не long

Информация

В рейтинге
1 486-й
Зарегистрирован
Активность