Что будет выведено на консоль?
Anonymous Quiz
41%
true
38%
false
6%
Невозможно предсказать
15%
Код не компилируется
👍17🤔4
Как в Java сделать утечку памяти?
• Используя самописный класс стека, при выполнении операции pop() не присваивать предыдущей ссылке значение null.
• Также можно неверно использовать HashMap вместо WeakHashMap для кэширования чего-нибудь большого, например картинок ваших товаров, пользователей и.т.д в. Т.к ссылки на ключи сильные (strong references), значения по этим ключам будут висеть в хипе доморковкиного заговенья следующей перезагрузки jvm процесса или удаления ключа из мапы и обнуления ссылки на него. Вообще, кэширование — тема для отдельного разговора
• Также, статья (но староватая)
• Используя самописный класс стека, при выполнении операции pop() не присваивать предыдущей ссылке значение null.
• Также можно неверно использовать HashMap вместо WeakHashMap для кэширования чего-нибудь большого, например картинок ваших товаров, пользователей и.т.д в. Т.к ссылки на ключи сильные (strong references), значения по этим ключам будут висеть в хипе до
• Также, статья (но староватая)
👍18🔥3
Что произойдет в результате компиляции и выполнения кода?
Anonymous Quiz
4%
Будет напечатано "null" без кавычек
45%
Будет напечатано "90" без кавычек
11%
Будет напечатано "8" без кавычек
6%
Будет напечатано "0" без кавычек
29%
Возникнет ошибка компиляции
5%
Результат невозможно предугадать
👍19
В чем проблемы Random?
Random возвращает псевдо-случайную числовую последовательность, основанную на линейном конгруэнтном методе и seed'е, основанном на timestamp'е создания j.u.Random.
Соотвественно, зная время создания, можно предсказать такую последовательность. Такой генератор является детерминированным, и криптографически нестойким. Для исправления этого лучше использовать SecureRandom
Random возвращает псевдо-случайную числовую последовательность, основанную на линейном конгруэнтном методе и seed'е, основанном на timestamp'е создания j.u.Random.
Соотвественно, зная время создания, можно предсказать такую последовательность. Такой генератор является детерминированным, и криптографически нестойким. Для исправления этого лучше использовать SecureRandom
👍39
Что будет в результате компиляции и выполнения данного кода?
Anonymous Quiz
42%
1
37%
2
6%
Ошибка выполнения
15%
Ошибка компиляции
👍16
GC и различные его виды в JVM. Какой объект считать достижимым. Как происходит сборка мусора (своими словами).
Виды GC:
• Serial Stop the World
• Parallel
• CMS (В чем недостаток по сравнению с Parallel?)
• G1 (Назвать отличие от CMS)
• Shenandoah
Виды GC:
• Serial Stop the World
• Parallel
• CMS (В чем недостаток по сравнению с Parallel?)
• G1 (Назвать отличие от CMS)
• Shenandoah
👍16
Что будет выведено на экран в результате компиляции и выполнения следующего кода?
Anonymous Quiz
22%
string string string
5%
null null null
12%
string null 0
25%
Ошибка компиляции в строке // 10
22%
Ошибка компиляции в строке // 22
4%
Ошибка компиляции в строке // 26
10%
Ошибка выполнения
👍26👎5👏1🍌1
Generics: В чем преимущество, как работают? Что такое type-erasure? В чем отличие от шаблонов C++?
• Типы дженерики обеспечивают параметрический полиморфизм, т.е выполнение идентичного кода для различных типов. Типичный пример — коллекции, итераторы
• type-erasure — это стирание информации о типе-параметре в runtime. Таким образом, в байт-коде мы увидим List, Set вместо List<Integer>, Set<Integer>, ну и type-cast'ы при необходимости
• В отличие от дженериков в Java, в С++ шаблоны в итоге приводят к компиляции метода или типа для каждого специфицированного типа параметра (специализация шаблона). Да простят меня здесь адепты С++.
• Типы дженерики обеспечивают параметрический полиморфизм, т.е выполнение идентичного кода для различных типов. Типичный пример — коллекции, итераторы
• type-erasure — это стирание информации о типе-параметре в runtime. Таким образом, в байт-коде мы увидим List, Set вместо List<Integer>, Set<Integer>, ну и type-cast'ы при необходимости
• В отличие от дженериков в Java, в С++ шаблоны в итоге приводят к компиляции метода или типа для каждого специфицированного типа параметра (специализация шаблона). Да простят меня здесь адепты С++.
👍25❤1
Какое имя у бина реализованного в данном классе?
Anonymous Quiz
4%
jpaClientRepository
69%
clientRepository
5%
JpaClientRepository
11%
accountRepository
6%
опеределенно два бина:dataSource и repository
5%
dataSource
👍26🔥1
Generics: Метод принимает ссылку на List<Parent>. Child наследуется от Parent. Можно ли в метод передать List<Child>?
В типе аргумента нужно указать List<? extends Parent>
В типе аргумента нужно указать List<? extends Parent>
⚡24👍4❤🔥1
Что будет в результате компиляции и выполнения следующего кода?
Anonymous Quiz
46%
7 4
13%
5 2
7%
ошибка времени выполнения
34%
ошибка компиляции
👍16🔥4⚡3🎉1
Hard-references, weak references, soft-references, phantom-references
• Hard-references — стандартные ссылки на объекты, которые становится eligible for collection после недостижимости из root set
• Weak-references — объекты могут быть удалены при наличии слабой ссылки на него в любое время
• Soft-references — объекты могут удалятся GC при недостатке памяти
• Phantom-references — объекты не доступны напрямую по ссылкам, перед удалением помещаются в очередь на удаление. Нужны для более безопасной финализации ссылок (вместо finalize)
• Hard-references — стандартные ссылки на объекты, которые становится eligible for collection после недостижимости из root set
• Weak-references — объекты могут быть удалены при наличии слабой ссылки на него в любое время
• Soft-references — объекты могут удалятся GC при недостатке памяти
• Phantom-references — объекты не доступны напрямую по ссылкам, перед удалением помещаются в очередь на удаление. Нужны для более безопасной финализации ссылок (вместо finalize)
⚡12👍5🔥3🎉2
Anonymous Quiz
12%
request
65%
singleton
10%
session
14%
prototype
👍20⚡4🔥3🌭3🤩2
Какими способами можно сконструировать объект в Java?
• Через конструктор
• Через статический factory-method
• Через паттерн Builder
• Через конструктор
• Через статический factory-method
• Через паттерн Builder
👍36⚡4🌚4🔥3