Каким образом можно обратиться к локальной переменной метода из анонимного класса, объявленного в теле этого метода? Есть ли какие-нибудь ограничения для такой переменной?
Как связан любой пользовательский класс с классом Object?
Расскажите про каждый из методов класса Object.
Что такое метод equals(). Чем он отличается от операции ==.
Если вы хотите переопределить equals(), какие условия должны удовлетворяться для переопределенного метода?
Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?
В чем особенность работы методов hashCode и equals? Каким образом реализованы методы hashCode и equals в классе Object? Какие правила и соглашения существуют для реализации этих методов? Когда они применяются?
Какой метод возвращает строковое представление объекта?
Что будет, если переопределить equals не переопределяя hashCode? Какие могут возникнуть проблемы?
Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode?
Как вы думаете, будут ли какие-то проблемы, если у объекта, который используется в качестве ключа в hashMap изменится поле, которое участвует в определении hashCode?
Чем отличается абстрактный класс от интерфейса, в каких случаях что вы будете использовать?
Можно ли получить доступ к private переменным класса и если да, то каким образом?
Что такое volatile и transient? Для чего и в каких случаях можно было бы использовать default?
Расширение модификаторов при наследовании, переопределение и сокрытие методов. Если у класса-родителя есть метод, объявленный как private, может ли наследник расширить его видимость? А если protected? А сузить видимость?
Имеет ли смысл объявлять метод private final?
Какие особенности инициализации final переменных?
Что будет, если единственный конструктор класса объявлен как final?
Что такое finalize? Зачем он нужен? Что Вы можете рассказать о сборщике мусора и алгоритмах его работы.
Почему метод clone объявлен как protected? Что необходимо для реализации клонирования?