но напишу в удаленный тред. я сегодня ловил GC в приступах нехватки памяти в IntalliJ IDEA 2017.2.6. При обновлении архетипов Maven оно просто вытекает в трубу. Лечится апгрейдом на Eearly Access 2017.3.
Помойму топик имеет смысл. Очень мало людей понимают, как работает коллектор. В интернете инфы - кот наплакал. Как работают флаги - хз все, включая разработчиков гц. Хотя вот Шипилёв недавно красивый визуализатор делал для шинанды... Если человек на собеседовании про все это может внятно рассказать - это явно маркер.
ох, мне щас довелось копатся в коде, где хайлоад, ребята беспокоятся о потреблении памяти, из-за этого боятся лишнего кеша в памяти.
Но там та-а-акой говнокод. Обмазанный aspectj и спрингом. Причем когда мы выложили им план доработок они сказали что aspectj это сложно, а threadlocal - слишком не явно (это на фоне AOP то не явно!).
Короче покажите мне нормальный хайлоад. Где эти ваши высоколобые спецы сидят и знают gc? Где код блестит как яйца кота?
Даже нашел, что рекомендовано задавать на _адекватном_ собеседовании.
Другое дело, что программиста берут не проводить красивые презентации с красивым матаном про «градиент производительности»(https://m.youtube.com/watch?v=ulWWSKr0Ce0), а кодить прикладные приложения в весьма сжатые сроки.
А тут, «забудьте дедукцию - давайте продукцию»(C).
Ну например, я в будущем хочу заняться допилкой OpenJDK, такие вакансии есть. Причем есть даже у относительно прикладных компаний, например, в JetBrains или Twitter, или SAP (не говоря уж о прямых разработчиках типа Oracle/Azul/Excelsior/IBM/...). Можно организовать свою компанию, и продаться на аутсорс какому-нибудь Сбербанку (у меня есть связи). То есть, не всех берут кодить именно прикладные приложения, некоторых - еще и системные.
Я хорошо понимаю, как в сжатые сроки кодить прикладные приложения. Но сейчас на мне висит тикет по переносу некоторых оптимизаций из хм... одного JDK в другой JDK, и я понятия не имею, как его правильно делать, никакой прошлый опыт в этом не помогает, а информация в интернете имеет исключительно обзорный характер.
Кстати, проследите реакцию кандидата (на джуниора) на провокационный вопросик, а что будет с GC если во время метода finalize объекта выскочит исключение?
Поток сознания гарантирован в 95% случаев.
Если кто расскажет про нить finalizer и метод runFinalizer - принимайте сразу.
Это, как правило, будет 20-ти летний фанатик программирования (не путать с кульхацкером), который по ночам и выходным работать будет.