Вопросы CORE-1
ДемидОбъектно-ориентированное программирование
4. Назовите основные принципы ООП.
5. Что такое инкапсуляция? Пример.
6. Что такое наследование? Пример
7. Что такое полиморфизм? Пример
8. Что такое ассоциация, агрегация и композиция?
9. Расскажите про раннее (статическое) и позднее (динамическое) связывание.
JAVA
2. За счет чего обеспечивается кроссплатформенность?
5. Что такое JDK? Что в него входит?
6. Что такое JRE? Что в него входит?
9. Что такое загрузчик классов (classloader)?
11. Что такое сборщик мусора? Garbage collector
12. Что такое Heap и Stack память в Java? Чем они отличаются?
Процедурная Java
1. Какие примитивные типы данных есть в Java?
2. Что такое char? Значение по умолчанию?
3. Сколько памяти занимает boolean?
5. Что такое автоупаковка и автораспаковка?
6. Что такое явное и неявное приведение типов?
8. Какие нюансы у строк в Java?
10. Почему не рекомендуется изменять строки в цикле? Что рекомендуется?
11. Почему строки не рекомендуется использовать для хранения паролей?
12. Почему String неизменяемый и финализированный класс?
13. Почему строка является популярным ключом в HashMap в Java?
14. Что делает метод intern() в классе String?
15. Можно ли использовать строки в конструкции switch?
16. Какая основная разница между String, StringBuffer, StringBuilder?
17. Существуют ли в Java многомерные массивы?
18. Какими значениями инициируются переменные по умолчанию?
19. Что такое сигнатура метода?
20. Расскажите про метод main?
21. Каким образом переменные передаются в методы, по значению или по ссылке?
ООП в JAVA
1. Какие виды классов есть в Java?
2. Расскажите про вложенные классы. В каких случаях они применяются?
3. Что такое локальный класс? Каковы его особенности?
4. Что такое анонимные классы? Где они применяются?
5. Каким образом из вложенного класса получить доступ к полю внешнего класса?
6. Что такое перечисления (Enum)?
7. Как проблема ромбовидного наследования решена в Java?
8. Что такое конструктор по умолчанию?
9. Могут ли быть приватные конструкторы? Для чего они нужны?
10. Расскажите про классы-загрузчики и про динамическую загрузку классов.
11. Чем отличаются конструкторы по умолчанию, конструктор копирования и конструктор с параметрами?
12. Какие модификаторы доступа есть в Java? Какие применимы к классам паблик дефолт?
13. Что означает модификатор static?
14. Может ли статический метод быть переопределён или перегружен?
15. Могут ли нестатические методы перегрузить статические?
16. Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
17. Что можно изменить в сигнатуре метода при переопределении?
18. Могут ли классы быть статическими?
19. Что означает модификатор final? К чему он может быть применим?
20. Что такое абстрактные классы? Чем они отличаются от обычных?
21. Может ли быть абстрактный класс без абстрактных методов
22. Могут ли быть конструкторы у абстрактных классов? Для чего они нужны?
23. Что такое интерфейсы? Какие модификаторы по умолчанию имеют поля и методы интерфейсов?
24. Чем интерфейсы отличаются от абстрактных классов?
25. Может ли один интерфейс наследоваться от другого? От двух других?
26. Что такое дефолтные методы интерфейсов? Для чего они нужны?
28. Каков порядок вызова конструкторов и блоков инициализации с учётом иерархии классов?
29. Зачем нужны и какие бывают блоки инициализации?
30. Для чего в Java используются статические блоки инициализации?
31. Что произойдет, если в блоке инициализации возникнет исключительная ситуация?
32. Какое исключение выбрасывается при возникновении ошибки в блоке инициализации класса?
34. Какие методы есть у класса Object (перечислить все)? Что они делают?
35. Расскажите про equals и hashcode
36. Каким образом реализованы методы hashCode() и equals() в классе Object?
37. Зачем нужен equals(). Чем он отличается от операции ==?
38. Правила переопределения equals()
39. Что будет, если переопределить equals() не переопределяя hashCode()? Проблемы?
40. Какой контракт между hashCode() и equals()?
41. Для чего нужен метод hashCode()?
42. Правила переопределения метода hashcode().
43. Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode()?
44. Могут ли у разных объектов быть одинаковые hashCode()?
46. Есть класс Point{int x, y;}. Почему хэш-код в виде 31 * x + y предпочтительнее чем x + y?
47. Чем a.getClass().equals(A.class) отличается от a instanceOf A.class
Исключения
2. Опишите иерархию исключений
3. Расскажите про обрабатываемые и необрабатываемые исключения
4. Можно ли обработать необрабатываемые исключения?
5. Какой оператор позволяет принудительно выбросить исключение?
6. О чем говорит ключевое слово throws?
7. Как создать собственное (пользовательское) исключение?
8. Расскажите про механизм обработки исключений в Java (Try-catch-finally)
9. Возможно ли использование блока try-finally (без catch)?
10. Может ли один блок catch отлавливать сразу несколько исключений?
13. В каком порядке следует обрабатывать исключения в catch блоках?
Сериализация
1. Что такое сериализация и как она реализована в Java?
2. Для чего нужна сериализация?
3. Опишите процесс сериализации/десериализации с использованием Serializable.
4. Как изменить стандартное поведение сериализации/десериализации?
5. Какие поля не будут сериализованы при сериализации? Будет ли сериализовано final поле?
6. Как создать собственный протокол сериализации?
7. Какая роль поля serialVersionUID в сериализации?
8. Когда стоит изменять значение поля serialVersionUID?
9. В чем проблема сериализации Singleton?
10. Расскажите про клонирование объектов. 3 способа
11. В чем отличие между поверхностным и глубоким клонированием?
12. Какой способ клонирования предпочтительней?
13. Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?
14. Как создать глубокую копию объекта? (2 способа)
Следующая тема: CORE-2
Все темы: список
Вопросы/замечания/предложения/нашли ошибку: пишите мне