Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 2.2 KB

java-core-interview.md

File metadata and controls

53 lines (42 loc) · 2.2 KB

Что такое строковый пул и зачем он нужен и как работает?

  • иммутабельность строк
  • 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