Какой из паттернов чаще всего применяется для создания единственного глобального экземпляра класса?
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
Модификатор доступа static в Java. Часть 11.
Статический вложенный класс (nested class).
Язык программирования Java позволяет создавать классы внутри другого класса. Такой класс называется вложенным (nested).
Вложенный класс группирует элементы, которые будут использоваться в одном месте, сделав тем сам код более организованным и читабельным.
Вложенные классы бывают двух видов:
– вложенные классы, объявленные статическими, называются статическими вложенными классами (static nested classes);
– вложенные классы, объявленные без static, называются внутренними классами (inner classes)
Основное различие между этими понятиями состоит в том, что внутренние классы имеют доступ ко всем членам включающего их класса (включая приватные) верхнего уровня, тогда как статические вложенные классы имеют доступ только к статическим членам внешнего класса.
Примером статического класса является уже известный Singleton паттерн (Картинка 2).
Наиболее широко используемый подход для создания объектов «одиночка» (singleton) — это статический вложенный класс, поскольку он не требует никакой синхронизации, его легко изучить и реализовать.
✅ JavaStart. Подписаться
Статический вложенный класс (nested class).
Язык программирования Java позволяет создавать классы внутри другого класса. Такой класс называется вложенным (nested).
Вложенный класс группирует элементы, которые будут использоваться в одном месте, сделав тем сам код более организованным и читабельным.
Вложенные классы бывают двух видов:
– вложенные классы, объявленные статическими, называются статическими вложенными классами (static nested classes);
– вложенные классы, объявленные без static, называются внутренними классами (inner classes)
Основное различие между этими понятиями состоит в том, что внутренние классы имеют доступ ко всем членам включающего их класса (включая приватные) верхнего уровня, тогда как статические вложенные классы имеют доступ только к статическим членам внешнего класса.
Примером статического класса является уже известный Singleton паттерн (Картинка 2).
Наиболее широко используемый подход для создания объектов «одиночка» (singleton) — это статический вложенный класс, поскольку он не требует никакой синхронизации, его легко изучить и реализовать.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍3👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4💯3👍1
При работе с JDBC, какой шаг обязателен перед выполнением SQL-запроса?
Anonymous Quiz
83%
Зарегистрировать драйвер и открыть Connection
3%
Вызвать ResultSet.next()
2%
Закрыть Statement
7%
Использовать Stream для обработки
6%
Посмотреть ответ
👍4✍3🎉1
Please open Telegram to view this post
VIEW IN TELEGRAM
💯4😁3👍1
Модификатор доступа static в Java. Часть 12.
Причины использовать статический внутренний класс:
– Если какой-то класс используются только в одном другом классе, то их можно сгруппировать, поместив в один общий класс. Это усиливает инкапсуляцию;
– Если вложенный класс не требует какого-либо доступа к членам экземпляра его класса, то лучше объявить его как статический, потому, что таким образом он не будет связан с внешним классом и, следовательно, будет более оптимальным, поскольку ему не потребуется память в куче или в стеке.
✅ JavaStart. Подписаться
Причины использовать статический внутренний класс:
– Если какой-то класс используются только в одном другом классе, то их можно сгруппировать, поместив в один общий класс. Это усиливает инкапсуляцию;
– Если вложенный класс не требует какого-либо доступа к членам экземпляра его класса, то лучше объявить его как статический, потому, что таким образом он не будет связан с внешним классом и, следовательно, будет более оптимальным, поскольку ему не потребуется память в куче или в стеке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍3👨💻3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4💯4👍1
Что верно для try-with-resources в Java?
Anonymous Quiz
19%
Закрывает ресурсы только при выбрасывании исключений
8%
Нельзя использовать несколько ресурсов в одном блоке
58%
Работает только с Closeable и AutoCloseable
9%
Требует явного вызова close() в блоке finally
7%
Посмотреть ответ
👍3✍2🎉2
Модификатор доступа static в Java. Часть 13.
Ключевые моменты использования статического внутреннего класса:
1) Статические вложенные классы не имеют доступа к какому-либо члену экземпляра внешнего класса — он может получить к ним доступ только через ссылку на объект;
2) Статические вложенные классы могут получить доступ ко всем статическим членам внешнего класса, включая приватные;
3) Спецификация Java не позволяет объявлять класс верхнего уровня статическим. Только классы внутри других классов могут быть статическими;
4) По сути статический вложенный класс ничем не отличается от любого другого внутреннего класса за исключением того, что его объект не содержит ссылку на создавший его объект внешнего класса;
5) Для использования статических методов/переменных/классов нам не нужно создавать объект данного класса;
Яркий пример вложенного статического класса — HashMap.Entry, который предоставляет структуру данных внутри HashMap.
Стоит заметить, также как и любой другой внутренний класс, вложенные классы находятся в отдельном файле .class. Таким образом, если вы объявили пять вложенных классов в вашем главном классе, у вас будет 6 файлов с расширением .class
✅ JavaStart. Подписаться
Ключевые моменты использования статического внутреннего класса:
1) Статические вложенные классы не имеют доступа к какому-либо члену экземпляра внешнего класса — он может получить к ним доступ только через ссылку на объект;
2) Статические вложенные классы могут получить доступ ко всем статическим членам внешнего класса, включая приватные;
3) Спецификация Java не позволяет объявлять класс верхнего уровня статическим. Только классы внутри других классов могут быть статическими;
4) По сути статический вложенный класс ничем не отличается от любого другого внутреннего класса за исключением того, что его объект не содержит ссылку на создавший его объект внешнего класса;
5) Для использования статических методов/переменных/классов нам не нужно создавать объект данного класса;
Яркий пример вложенного статического класса — HashMap.Entry, который предоставляет структуру данных внутри HashMap.
Стоит заметить, также как и любой другой внутренний класс, вложенные классы находятся в отдельном файле .class. Таким образом, если вы объявили пять вложенных классов в вашем главном классе, у вас будет 6 файлов с расширением .class
Please open Telegram to view this post
VIEW IN TELEGRAM
✍4👍3👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4💯3🔥2
Чем отличается оператор == от метода equals() при сравнении объектов в Java?
Anonymous Quiz
18%
== сравнивает содержимое, equals() — ссылки на объекты
66%
== сравнивает ссылки, equals() — содержимое
1%
Оба всегда сравнивают только содержимое
11%
== работает только для примитивов, equals() — только для объектов
4%
Посмотреть ответ
👍3✍2🎉2🤓1
Что такое volatile-поле в Java?
Anonymous Quiz
1%
Поле, к которому нельзя обратиться из других классов
22%
Поле, доступ к которому синхронизирован блоком synchronized
64%
Поле, значение которого всегда читается/записывается напрямую в основную память
7%
Поле, которое автоматически инкрементируется при каждом доступе
7%
Посмотреть ответ
👍2🎉2👨💻2✍1
Модификатор доступа static в Java. Часть 14.
Константы.
Говоря о ключевом слове static, нельзя не упомянуть о его применении в определении констант — переменных, которые никогда не изменяются.
В языке Java существует зарезервированное слово «const», но оно не используется, и Java не поддерживает константы на уровне языка. Выход из ситуации имеется: для определения константы необходимо добавить модификаторы «static final» к полю класса.
Константы — это статические неизменяемые поля, содержимое которых неизменно. Это может относиться к примитивам, String и другим классам оберткам, а также к неизменяемым коллекциям.
Если состояние объекта может измениться, он не является константой.
Модификатор static делает переменную доступной без создания экземпляра класса, а final делает ее неизменяемой.
При этом нужно помнить, что если мы сделаем переменную только static, то ее легко можно будет изменить, обратившись к ней через имя класса.
Если переменная будет иметь только модификатор final, то при создании каждого экземпляра класса она может быть проинициализирована своим значением.
Соответственно, используя совместно модификаторы static и final, переменная остается статической и может быть проинициализирована только один раз.
В Java константой считается не та переменная, которую нельзя изменить в рамках одного объекта, а та, которую не могут изменить ни один экземпляр класса в котором она находится (такая переменная создается и инициализируется один раз для всех экземпляров, сколько бы их не было).
✅ JavaStart. Подписаться
Константы.
Говоря о ключевом слове static, нельзя не упомянуть о его применении в определении констант — переменных, которые никогда не изменяются.
В языке Java существует зарезервированное слово «const», но оно не используется, и Java не поддерживает константы на уровне языка. Выход из ситуации имеется: для определения константы необходимо добавить модификаторы «static final» к полю класса.
Константы — это статические неизменяемые поля, содержимое которых неизменно. Это может относиться к примитивам, String и другим классам оберткам, а также к неизменяемым коллекциям.
Если состояние объекта может измениться, он не является константой.
Модификатор static делает переменную доступной без создания экземпляра класса, а final делает ее неизменяемой.
При этом нужно помнить, что если мы сделаем переменную только static, то ее легко можно будет изменить, обратившись к ней через имя класса.
Если переменная будет иметь только модификатор final, то при создании каждого экземпляра класса она может быть проинициализирована своим значением.
Соответственно, используя совместно модификаторы static и final, переменная остается статической и может быть проинициализирована только один раз.
В Java константой считается не та переменная, которую нельзя изменить в рамках одного объекта, а та, которую не могут изменить ни один экземпляр класса в котором она находится (такая переменная создается и инициализируется один раз для всех экземпляров, сколько бы их не было).
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍3👨💻3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🔥4👍1
Какая аннотация в Spring MVC позволяет сопоставить HTTP-GET запрос на метод контроллера?
Anonymous Quiz
3%
3%
82%
11%
0%
Посмотреть ответ
✍3👍2🎉2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6👍3👨💻1