1. Как появились дженерики в Java, какую проблему они решали, и как обходились без них?
2. Как устроен жизненный цикл дженериков — что происходит после компиляции и на этапе выполнения?
3. Что такое PECS-принцип в дженериках и в каких случаях его удобно применять?
4. Можно ли отлавливать дженерик-исключения разного типа в try-catch и как это работает?
5. Как устроена модель памяти в Java и какие области она включает?
6. Как работает сборщик мусора (GC) в Java и по какому принципу он очищает память?
7. Как объекты перемещаются между поколениями в куче, и зачем это нужно?
8. Какие требования предъявляются к ключам в HashMap?
9. Как устроен контракт equals и hashCode и почему он важен для…