JavaStart
942 subscribers
873 photos
26 videos
584 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
Модификатор доступа static в Java. Часть 12.

Причины использовать статический внутренний класс:

– Если какой-то класс используются только в одном другом классе, то их можно сгруппировать, поместив в один общий класс. Это усиливает инкапсуляцию;

– Если вложенный класс не требует какого-либо доступа к членам экземпляра его класса, то лучше объявить его как статический, потому, что таким образом он не будет связан с внешним классом и, следовательно, будет более оптимальным, поскольку ему не потребуется память в куче или в стеке.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Какая аннотация используется для обозначения того, что метод теста в JUnit 5?
Anonymous Quiz
10%
@TestCase
0%
@Verify
84%
@Test (из org.junit.jupiter.api)
3%
@Before
3%
Посмотреть ответ
Модификатор доступа static в Java. Часть 13.

Ключевые моменты использования статического внутреннего класса:

1) Статические вложенные классы не имеют доступа к какому-либо члену экземпляра внешнего класса — он может получить к ним доступ только через ссылку на объект;

2) Статические вложенные классы могут получить доступ ко всем статическим членам внешнего класса, включая приватные;

3) Спецификация Java не позволяет объявлять класс верхнего уровня статическим. Только классы внутри других классов могут быть статическими;

4) По сути статический вложенный класс ничем не отличается от любого другого внутреннего класса за исключением того, что его объект не содержит ссылку на создавший его объект внешнего класса;

5) Для использования статических методов/переменных/классов нам не нужно создавать объект данного класса;

Яркий пример вложенного статического класса — HashMap.Entry, который предоставляет структуру данных внутри HashMap.

Стоит заметить, также как и любой другой внутренний класс, вложенные классы находятся в отдельном файле .class. Таким образом, если вы объявили пять вложенных классов в вашем главном классе, у вас будет 6 файлов с расширением .class

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
В чём он не прав?

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Модификатор доступа static в Java. Часть 14.

Константы.

Говоря о ключевом слове static, нельзя не упомянуть о его применении в определении констант — переменных, которые никогда не изменяются.

В языке Java существует зарезервированное слово «const», но оно не используется, и Java не поддерживает константы на уровне языка. Выход из ситуации имеется: для определения константы необходимо добавить модификаторы «static final» к полю класса.

Константы — это статические неизменяемые поля, содержимое которых неизменно. Это может относиться к примитивам, String и другим классам оберткам, а также к неизменяемым коллекциям.
Если состояние объекта может измениться, он не является константой.

Модификатор static делает переменную доступной без создания экземпляра класса, а final делает ее неизменяемой.

При этом нужно помнить, что если мы сделаем переменную только static, то ее легко можно будет изменить, обратившись к ней через имя класса.

Если переменная будет иметь только модификатор final, то при создании каждого экземпляра класса она может быть проинициализирована своим значением.

Соответственно, используя совместно модификаторы static и final, переменная остается статической и может быть проинициализирована только один раз.

В Java константой считается не та переменная, которую нельзя изменить в рамках одного объекта, а та, которую не могут изменить ни один экземпляр класса в котором она находится (такая переменная создается и инициализируется один раз для всех экземпляров, сколько бы их не было).

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Какая аннотация в Spring MVC позволяет сопоставить HTTP-GET запрос на метод контроллера?
Anonymous Quiz
2%
@PostMapping
4%
@RequestBody
82%
@GetMapping
12%
@RestController
0%
Посмотреть ответ
Please open Telegram to view this post
VIEW IN TELEGRAM
Модификатор доступа static в Java. Часть 15.

Причины использовать константы.

1) Константы улучшают читабельность программного кода;
Улучшают производительность приложения, поскольку они кешируются как JVM, так и самим приложением.

2) Используя константы вместо чисел, вы практикуете применение паттерна Magic Number.

Ключевые моменты.

1) При использовании констант необходимо соблюдать соглашения об именах. Константы именуются в стиле CONSTANT_CASE: все буквы в верхнем регистре, каждое слово отделено от следующего подчеркиванием;

2) Разместить константы можно в классе, который их будет использовать, в отдельных нескольких классах в соответствии с логикой использования констант, в одном большом отдельном глобальном классе и в интерфейсе;

3) Если константы относятся к перечисляемому типу (например дни недели, месяцы и т.д.), то для таких констант удобнее использовать enum.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Как называется сборщик мусора, работающий по принципу «молодое/старое поколение» с генерациями?
Anonymous Quiz
21%
Serial GC
46%
G1 GC
11%
Parallel GC
8%
CMS
13%
Посмотреть ответ
Please open Telegram to view this post
VIEW IN TELEGRAM
Java простыми словами.

Java является объектно–ориентированным языком программирования 👨‍💻

Объект в Java – это любая сущность, обладающая характерным поведением (имеет какие-то методы) и отличительными характеристиками (имеет какие-то поля – атрибуты).

Объектно–ориентированное программирование – парадигма программирования, в которой программа строится из взаимодействующих объектов 🤝

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM