Что такое строковый пул и зачем он нужен и как работает?
- иммутабельность строк
- intern()
- хранение паролей
В чем разница между статическим и динамическим связыванием в Java?
- overloading/overriding
- интерфейсы, абстрактный классы, дефолтные методы
- invokestatic, invokevirtual
Привести пример плохой и хорошей реализации метода hashCode()?
- константа
- неравномерное распределение
- сломан контракт с equals()
Приведите примеры удачного и неудачного использования Optional?
- get без проверки
- default value
- кидаем свой экспешн
- передача в параметрвах
Что такое FunctionInterface и чем он отличается от обычного интерфейса?
- Один метод
- Используется в лямбдах
- Аннотация @FunctionalInterface
- Какие бывают
- Напиши свою
Что такое Atomic types и зачем они нужны?
- Атомарные операции
- Оптимистичная блокировка (compareAndSet)
- Практические кейсы
Что такое Happens-before? Какие особенности использования ключевого слова volatile?
- Кэширование значений
- Атомарность операций
- Reordeing
Расскажите о Heap и Stack память в Java. В чем разница между ними?
- локальная/глобальная видимость
- ораничен/неограничен
- фрагментация
Как работает Garbage Collector?
- разные типы GC
- stop the world
- как сделать утечку памяти
- как найти утечку памяти
Расскажите, что вы знаете о разных типах ссылок в java?
- WeakReference, SoftReference, PhantomReference