ОглавлениеCore
Скачать 1.53 Mb.
|
Оглавление Core-1............................................................................................................................................13 Что такое ООП?.......................................................................................................................13 Какие преимущества у ООП?................................................................................................13 Какие недостатки у ООП?......................................................................................................13 Принципы ООП (наследование, инкапсуляция, полиморфизм, абстракция)....................13 Класс, объект, интерфейс.......................................................................................................14 Ассоциация, агрегация, композиция.....................................................................................14 Является – «is a», имеет – «has a»..........................................................................................14 Статическое и динамическое связывание.............................................................................15 SOLID.......................................................................................................................................15 Какая основная идея языка?...................................................................................................16 За счет чего обеспечивается кроссплатформенность?........................................................16 Какие преимущества у Java?..................................................................................................16 Какие недостатки у java?........................................................................................................17 Что такое JDK? Что в него входит?.......................................................................................17 Что такое JRE? Что в него входит?........................................................................................17 Что такое JVM?.......................................................................................................................17 Что такое byte code?................................................................................................................17 Что такое загрузчик классов (classloader)?...........................................................................17 Что такое JIT?..........................................................................................................................19 Виды ссылок в Java.................................................................................................................19 Отличия между слабыми, мягкими, фантомными и обычными ссылками в Java............19 Для чего нужен сборщик мусора?.........................................................................................20 Как работает сборщик мусора?..............................................................................................22 Какие разновидности сборщиков мусора реализованы в виртуальной машине HotSpot?....................................................................................................................................23 Опишите алгоритм работы какого-нибудь сборщика мусора, реализованного в виртуальной машине HotSpot................................................................................................23 Что такое finalize()? Зачем он нужен?...................................................................................25 Что произойдет со сборщиком мусора, если выполнение метода finalize() требует ощутимо много времени или в процессе выполнения будет выброшено исключение?. .25 Чем отличаются final, finally и finalize()?..............................................................................25 Что такое Heap- и Stack-память в Java? Какая разница между ними?...............................26 Верно ли утверждение, что примитивные типы данных всегда хранятся в стеке, а экземпляры ссылочных типов данных – в куче?..................................................................26 Ключевые слова.......................................................................................................................27 Для чего используется оператор assert?................................................................................27 Какие примитивные типы данных есть в Java?....................................................................27 Что такое char?.........................................................................................................................28 Сколько памяти занимает boolean?........................................................................................28 Логические операторы............................................................................................................28 Тернарный условный оператор..............................................................................................28 Какие побитовые операции вы знаете?.................................................................................28 Что такое классы-обертки?.....................................................................................................29 Что такое автоупаковка и автораспаковка?...........................................................................29 Что такое явное и неявное приведение типов? В каких случаях в java нужно использовать явное приведение?...........................................................................................30 Когда в приложении может быть выброшено исключение ClassCastException?..............31 Что такое пул интов?...............................................................................................................31 Можно ли изменить размер пула int?....................................................................................31 Какие еще есть пулы примитивов?........................................................................................31 Какие есть особенности класса String?.................................................................................31 Что такое «пул строк»?...........................................................................................................31 Почему не рекомендуется изменять строки в цикле? Что рекомендуется использовать?..........................................................................................................................32 Почему char[] предпочтительнее String для хранения пароля?..........................................32 Почему String неизменяемый и финализированный класс?...............................................32 Почему строка является популярным ключом в HashMap в Java?.....................................33 Что делает метод intern() в классе String?.............................................................................33 Можно ли использовать строки в конструкции switch?......................................................33 Какая основная разница между String, StringBuffer, StringBuilder?...................................33 Что такое StringJoiner?............................................................................................................33 Существуют ли в Java многомерные массивы?....................................................................34 Какими значениями инициируются переменные по умолчанию?.....................................34 Что такое сигнатура метода?..................................................................................................34 Расскажите про метод main....................................................................................................34 Каким образом переменные передаются в методы, по значению или по ссылке?...........35 Если передать массив и изменить его в методе, то будет ли изменяться текущий массив?.....................................................................................................................................35 Какие типы классов есть в Java?............................................................................................35 Расскажите про вложенные классы. В каких случаях они применяются?........................35 Что такое «статический класс»?............................................................................................37 Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?.....................................................37 Что такое «локальный класс»? Каковы его особенности?..................................................37 Что такое «анонимные классы»? Где они применяются?...................................................37 Каким образом из вложенного класса получить доступ к полю внешнего класса?.........38 Что такое перечисления (enum)?............................................................................................38 Особенности Enum-классов...................................................................................................39 Ромбовидное наследование....................................................................................................39 Как проблема ромбовидного наследования решена в java?................................................39 Дайте определение понятию «конструктор»........................................................................40 Что такое конструктор по умолчанию?.................................................................................40 Могут ли быть приватные конструкторы? Для чего они нужны?......................................40 Расскажите про классы-загрузчики и про динамическую загрузку классов.....................40 Чем отличаются конструкторы по умолчанию, конструктор копирования и конструктор с параметрами?...............................................................................................40 Какие модификаторы доступа есть в Java? Какие применимы к классам?.......................41 Может ли объект получить доступ к члену класса объявленному как private? Если да, то каким образом?....................................................................................................41 Что означает модификатор static?..........................................................................................41 К каким конструкциям Java применим модификатор static?..............................................41 В чем разница между членом экземпляра класса и статическим членом класса?............42 Может ли статический метод быть переопределен или перегружен?................................42 Могут ли нестатические методы перегрузить статические?..............................................42 Как получить доступ к переопределенным методам родительского класса?....................42 Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?.......................................................................................................42 Что можно изменить в сигнатуре метода при переопределении? Можно ли менять модификаторы (throws и т. п.)?..............................................................................................43 Могут ли классы быть статическими?..................................................................................43 Что означает модификатор final? К чему он может быть применим?................................43 Что такое абстрактные классы? Чем они отличаются от обычных?..................................43 Где и для чего используется модификатор abstract?............................................................44 Можно ли объявить метод абстрактным и статическим одновременно?..........................44 Может ли быть абстрактный класс без абстрактных методов?..........................................44 Могут ли быть конструкторы у абстрактных классов? Для чего они нужны?..................44 Что такое интерфейсы? Какие модификаторы по умолчанию имеют поля и методы интерфейсов?...........................................................................................................................45 Чем интерфейсы отличаются от абстрактных классов? В каких случаях следует использовать абстрактный класс, а в каких интерфейс?.....................................................45 Что имеет более высокий уровень абстракции – класс, абстрактный класс или интерфейс?...............................................................................................................................46 Может ли один интерфейс наследоваться от другого? От двух других?...........................46 Что такое дефолтные методы интерфейсов? Для чего они нужны?...................................46 Почему в некоторых интерфейсах вообще не определяют методов?................................46 Что такое static метод интерфейса?.......................................................................................46 Как вызывать static метод интерфейса?................................................................................47 Почему нельзя объявить метод интерфейса с модификатором final?................................47 Как решается проблема ромбовидного наследования при наследовании интерфейсов при наличии default-методов?................................................................................................47 Каков порядок вызова конструкторов инициализации с учетом иерархии классов?.......47 Зачем нужны и какие бывают блоки инициализации?........................................................47 Для чего используются статические блоки инициализации?.............................................48 Где разрешена инициализация статических/нестатических полей?..................................48 Что произойдет, если в блоке инициализации возникнет исключительная ситуация?....48 Какое исключение выбрасывается при возникновении ошибки в блоке инициализации класса?..........................................................................................................48 Что такое класс Object?...........................................................................................................48 Какие методы есть у класса Object (перечислить все)? Что они делают?.........................48 Расскажите про equals и hashcode..........................................................................................49 Каким образом реализованы методы hashCode() и equals() в классе Object?....................50 Зачем нужен equals(). Чем он отличается от операции ==?................................................50 Правила переопределения метода Object.equals()................................................................50 Что будет, если переопределить equals(), не переопределяя hashCode()? Какие могут возникнуть проблемы?...........................................................................................................50 Какой контракт между hashCode() и equals()?......................................................................50 Для чего нужен метод hashCode()?........................................................................................51 Правила переопределения метода hashcode().......................................................................51 Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode()?..............................................................................................................51 Могут ли у разных объектов быть одинаковые hashCode()?...............................................51 Почему нельзя реализовать hashcode(), который будет гарантированно уникальным для каждого объекта?..............................................................................................................51 Почему хеш-код в виде 31 * x + y предпочтительнее чем x + y?........................................52 Чем a.getClass().equals(A.class) отличается от a instanceOf A.class?...................................52 instanceof..................................................................................................................................52 Что такое исключение?...........................................................................................................52 Опишите иерархию исключений...........................................................................................52 Расскажите про обрабатываемые и необрабатываемые исключения.................................53 Можно ли обработать необрабатываемые исключения?.....................................................53 Какой оператор позволяет принудительно выбросить исключение?.................................53 О чем говорит ключевое слово throws?.................................................................................53 Как написать собственное («пользовательское») исключение?.........................................53 Какие существуют unchecked exception?..............................................................................53 Что представляет из себя ошибки класса Error?..................................................................53 Что вы знаете о OutOfMemoryError?.....................................................................................54 Опишите работу блока try-catch-finally.................................................................................54 Возможно ли использование блока try-finally (без catch)?..................................................55 Может ли один блок catch отлавливать сразу несколько исключений?.............................55 Всегда ли исполняется блок finally? Существуют ли ситуации, когда блок finally не будет выполнен?......................................................................................................................55 Может ли метод main() выбросить исключение во вне и если да, то где будет происходить обработка данного исключения?.....................................................................55 В каком порядке следует обрабатывать исключения в catch-блоках?................................55 Что такое механизм try-with-resources?.................................................................................55 Что произойдет, если исключение будет выброшено из блока catch, после чего другое исключение будет выброшено из блока finally?......................................................55 Что произойдет, если исключение будет выброшено из блока catch, после чего другое исключение будет выброшено из метода close() при использовании try-with- resources?..................................................................................................................................56 Предположим, есть метод, который может выбросить IOException и FileNotFoundException. В какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?...............................................................................56 Что такое «сериализация» и как она реализована в Java?...................................................56 Для чего нужна сериализация?..............................................................................................57 Опишите процесс сериализации/десериализации с использованием Serializable............57 Как изменить стандартное поведение сериализации/десериализации?............................57 Какие поля не будут сериализованы при сериализации? Будет ли сериализовано final-поле?................................................................................................................................57 Как создать собственный протокол сериализации?.............................................................58 Какая роль поля serialVersionUID в сериализации?.............................................................58 Когда стоит изменять значение поля serialVersionUID?......................................................58 В чем проблема сериализации Singleton?.............................................................................58 Как исключить поля из сериализации?.................................................................................59 Что обозначает ключевое слово transient?............................................................................59 Какое влияние оказывают на сериализуемость модификаторы полей static и final?........59 Как не допустить сериализацию?..........................................................................................59 Какие существуют способы контроля за значениями десериализованного объекта?......59 Расскажите про клонирование объектов...............................................................................60 В чем отличие между поверхностным и глубоким клонированием?.................................61 Какой способ клонирования предпочтительней?.................................................................61 Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?................62 Как создать глубокую копию объекта (2 способа)?.............................................................62 Рефлексия.................................................................................................................................62 Класс Optional..........................................................................................................................62 |