Что такое дженерики (generics) в Java?
Anonymous Quiz
57%
Механизм обеспечения безопасности типов во время компиляции
3%
Способ определения статических методов
6%
Метод ускорения выполнения кода
29%
Специальный тип интерфейса
5%
Посмотреть ответ
👍3✍2🎉2❤1
Модификатор доступа static в Java. Часть 7.
Ключевые моменты.
Очень нужная информация как для понимания, так и для успешного ответа на собеседовании на вопросы про ключевое слово static.
1) Статические методы в Java вызываются во время компиляции, а не во время исполнения;
2) Поскольку переопределение метода является частью полиморфизма во время выполнения (Runtime Polymorphism), статические методы не могут быть переопределены. Это справедливо также для статических методов интерфейса;
3) Абстрактные методы не могут быть статическими;
4) Статические методы не могут использовать ключевые слова this или super;
5) Методы экземпляра класса также могут непосредственно обращаться к статическим переменным и статическим методам;
6) Статические методы могут обращаться ко всем статическим переменным и другим статическим методам;
7) Статические методы не могут напрямую обращаться к переменным экземпляра и методам экземпляра. Для этого им нужна ссылка на объект;
8) Статические поля и методы не являются потокобезопасными. Т.к. каждый экземпляр класса имеет одну и ту же копию статической переменной, такая переменная нуждается в защите от одновременного обращения к ней нескольких потоков. Для этого статическая переменная должна быть синхронизирована;
9) Статические методы связываются во время компиляции, в отличие от не статических методов, которые связываются во время исполнения.
✅ JavaStart. Подписаться
Ключевые моменты.
Очень нужная информация как для понимания, так и для успешного ответа на собеседовании на вопросы про ключевое слово static.
1) Статические методы в Java вызываются во время компиляции, а не во время исполнения;
2) Поскольку переопределение метода является частью полиморфизма во время выполнения (Runtime Polymorphism), статические методы не могут быть переопределены. Это справедливо также для статических методов интерфейса;
3) Абстрактные методы не могут быть статическими;
4) Статические методы не могут использовать ключевые слова this или super;
5) Методы экземпляра класса также могут непосредственно обращаться к статическим переменным и статическим методам;
6) Статические методы могут обращаться ко всем статическим переменным и другим статическим методам;
7) Статические методы не могут напрямую обращаться к переменным экземпляра и методам экземпляра. Для этого им нужна ссылка на объект;
8) Статические поля и методы не являются потокобезопасными. Т.к. каждый экземпляр класса имеет одну и ту же копию статической переменной, такая переменная нуждается в защите от одновременного обращения к ней нескольких потоков. Для этого статическая переменная должна быть синхронизирована;
9) Статические методы связываются во время компиляции, в отличие от не статических методов, которые связываются во время исполнения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👨💻3✍2
Как называется механизм автоматического освобождения памяти в Java?
Anonymous Quiz
3%
Перераспределение памяти
2%
Оптимизация памяти
2%
Ручное управление памятью
93%
Сборка мусора (Garbage Collection)
1%
Посмотреть ответ
👍4✍2🎉2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9👍2🔥2
Модификатор доступа static в Java. Часть 8.
Наглядная таблица связей статических/обычных методов и статических/обычных переменных.
✅ JavaStart. Подписаться
Наглядная таблица связей статических/обычных методов и статических/обычных переменных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3👨💻2✍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9👍3✍1
Одна из самых распространенных задач из собеседований.
Каким будет результат сравнения в следующем коде на Картинке?
Вопрос на понимание работы пула строк в Java и на понимание сравнения строк.
Разберем детально:
1) Переменная s1 ссылается на строку в пуле уникальных строк в памяти, переменная s2 ссылается на ту же саму строку в пуле уникальных строк, что и переменная s1, первое сравнение будет true, так как s1 и s2 ссылаются на один и тот же объект.
2) Переменная s3 ссылается на новый объект, который не находится в пуле уникальных строк, так как он создан через new, следовательно второе сравнение будет false, так как сравниваем переменные которые ссылаются на на два разных объекта.
3) Третье сравнение будет true, так как мы сравниваем строки посимвольно на эквивалентность через .equals(), а содержимое данных строк одинаково.
✅ JavaStart. Подписаться
Каким будет результат сравнения в следующем коде на Картинке?
Вопрос на понимание работы пула строк в Java и на понимание сравнения строк.
Разберем детально:
1) Переменная s1 ссылается на строку в пуле уникальных строк в памяти, переменная s2 ссылается на ту же саму строку в пуле уникальных строк, что и переменная s1, первое сравнение будет true, так как s1 и s2 ссылаются на один и тот же объект.
2) Переменная s3 ссылается на новый объект, который не находится в пуле уникальных строк, так как он создан через new, следовательно второе сравнение будет false, так как сравниваем переменные которые ссылаются на на два разных объекта.
3) Третье сравнение будет true, так как мы сравниваем строки посимвольно на эквивалентность через .equals(), а содержимое данных строк одинаково.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍2👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
💯6😁3👍2
Какой из следующих методов используется для создания нового потока (thread) в Java?
Anonymous Quiz
29%
63%
new Thread().start()
1%
thread.begin()
2%
startThread()
5%
Посмотреть ответ
✍3👍3👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6👍2💯2
Модификатор доступа static в Java. Часть 9.
Излюбленная тема почти всех интервьюеров - Статический блок инициализации.
Статический блок используется для инициализации статических переменных. Хотя статические переменные могут быть инициализированы непосредственно во время объявления, бывают ситуации, когда нам требуется выполнить многострочную обработку.
В таких случаях пригодятся статические блоки.
Либо, если статические переменные во время инициализации требуют дополнительной логики, состоящей из нескольких операторов, то также можно использовать статический блок.
Пример статического блока.
Предположим, мы хотим инициализировать объект, представляющий собой список с некоторыми предопределенными значениями.
Это легко сделать с помощью статических блоков (Картинка 1).
В этом примере невозможно инициализировать объект List всеми начальными значениями вместе с объявлением, поэтому используется статический блок.
Код на Картинке 2 демонстрирует особенность статических блоков — они выполняются раньше конструкторов и при создании нескольких объектов класса, статический блок выполняется только один раз.
✅ JavaStart. Подписаться
Излюбленная тема почти всех интервьюеров - Статический блок инициализации.
Статический блок используется для инициализации статических переменных. Хотя статические переменные могут быть инициализированы непосредственно во время объявления, бывают ситуации, когда нам требуется выполнить многострочную обработку.
В таких случаях пригодятся статические блоки.
Либо, если статические переменные во время инициализации требуют дополнительной логики, состоящей из нескольких операторов, то также можно использовать статический блок.
Пример статического блока.
Предположим, мы хотим инициализировать объект, представляющий собой список с некоторыми предопределенными значениями.
Это легко сделать с помощью статических блоков (Картинка 1).
В этом примере невозможно инициализировать объект List всеми начальными значениями вместе с объявлением, поэтому используется статический блок.
Код на Картинке 2 демонстрирует особенность статических блоков — они выполняются раньше конструкторов и при создании нескольких объектов класса, статический блок выполняется только один раз.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍3👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6💯3👍2✍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5💯4👍1
Модификатор доступа static в Java. Часть 10.
Какие причины использовать статические блоки?
1) Если для инициализации статических переменных требуется дополнительная логика, за исключением операции присваивания;
2) Если инициализация статических переменных подвержена ошибкам и требует обработки исключений.
Ключевые моменты.
1) У класса может быть несколько статических блоков;
2) Статические поля и статические блоки выполняются в том же порядке, в котором они присутствуют в классе;
3) Из статического блока нельзя получить доступ к не статическим членам класса;
4) Статический блок не может пробросить дальше перехваченные исключения, но может их выбросить. При этом всегда будет выкидываться только java.lang.ExceptionInInitializerError;
5) Статические поля или переменные инициализируются после загрузки класса в память в том же порядке, в каком они описаны в классе.
✅ JavaStart. Подписаться
Какие причины использовать статические блоки?
1) Если для инициализации статических переменных требуется дополнительная логика, за исключением операции присваивания;
2) Если инициализация статических переменных подвержена ошибкам и требует обработки исключений.
Ключевые моменты.
1) У класса может быть несколько статических блоков;
2) Статические поля и статические блоки выполняются в том же порядке, в котором они присутствуют в классе;
3) Из статического блока нельзя получить доступ к не статическим членам класса;
4) Статический блок не может пробросить дальше перехваченные исключения, но может их выбросить. При этом всегда будет выкидываться только java.lang.ExceptionInInitializerError;
5) Статические поля или переменные инициализируются после загрузки класса в память в том же порядке, в каком они описаны в классе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍3👨💻2
Какой из паттернов чаще всего применяется для создания единственного глобального экземпляра класса?
Anonymous Quiz
2%
Стратегия (Strategy)
84%
Одиночка (Singleton)
8%
Фабрика (Factory)
1%
Адаптер (Adapter)
5%
Посмотреть ответ
👍4✍3🎉1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9👍2✍1💯1
Какой файл обычно отвечает за сборку проекта в Maven?
Anonymous Quiz
3%
settings.xml
4%
build.gradle
17%
maven.xml
75%
pom.xml
1%
Посмотреть ответ
👍4✍2🎉2