Что вернёт метод?
Optional<Integer> opt = Optional.empty();
opt.orElseGet(() -> 42);
Optional<Integer> opt = Optional.empty();
opt.orElseGet(() -> 42);
Anonymous Quiz
4%
null
21%
Optional[42]
7%
Исключение
53%
42
16%
Посмотреть ответ
🎉3✍2👍2
Класс LocalDate в Java простыми словами. Часть 1.
Когда дело касается работы с датами в Java, класс LocalDate является незаменимым инструментом. Он предоставляет простой и удобный способ для представления даты без учета временной зоны и времени суток.
Класс LocalDate является частью пакета java.time и был введен в Java 8 для работы с датами без времени. Он представляет собой неизменяемый объект, который содержит год, месяц и день.
LocalDate не учитывает часы, минуты и секунды, что делает его идеальным для работы с календарными датами.
Создание объекта LocalDate.
Для создания объекта LocalDate используется статический метод of().
Например, чтобы представить дату 23 июля 2025 года, мы можем использовать следующий код:
LocalDate date = LocalDate.of(2025, 7, 23);
Операции с датами.
Класс LocalDate обладает множеством методов для выполнения различных операций с датами. Например, мы можем добавлять и вычитать дни, месяцы и годы, а также выполнять сравнение дат.
// Прибавляем 1 день к нашей дате
LocalDate tomorrow = date.plusDays(1);
// Прибавляем 1 месяц к нашей дате
LocalDate nextMonth = date.plusMonths(1);
// Отнимаем 1 год от нашей даты
LocalDate previousYear = date.minusYears(1);
boolean isAfter = date.isAfter(tomorrow);
boolean isBefore = date.isBefore(nextMonth);
boolean isEqual = date.isEqual(previousYear);
Если мы напишем в консоль:
System.out.println(isAfter);
System.out.println(isBefore);
System.out.println(isEqual);
То получим следующий вывод:
false
true
false
✅ JavaStart. Подписаться
Когда дело касается работы с датами в Java, класс LocalDate является незаменимым инструментом. Он предоставляет простой и удобный способ для представления даты без учета временной зоны и времени суток.
Класс LocalDate является частью пакета java.time и был введен в Java 8 для работы с датами без времени. Он представляет собой неизменяемый объект, который содержит год, месяц и день.
LocalDate не учитывает часы, минуты и секунды, что делает его идеальным для работы с календарными датами.
Создание объекта LocalDate.
Для создания объекта LocalDate используется статический метод of().
Например, чтобы представить дату 23 июля 2025 года, мы можем использовать следующий код:
LocalDate date = LocalDate.of(2025, 7, 23);
Операции с датами.
Класс LocalDate обладает множеством методов для выполнения различных операций с датами. Например, мы можем добавлять и вычитать дни, месяцы и годы, а также выполнять сравнение дат.
// Прибавляем 1 день к нашей дате
LocalDate tomorrow = date.plusDays(1);
// Прибавляем 1 месяц к нашей дате
LocalDate nextMonth = date.plusMonths(1);
// Отнимаем 1 год от нашей даты
LocalDate previousYear = date.minusYears(1);
boolean isAfter = date.isAfter(tomorrow);
boolean isBefore = date.isBefore(nextMonth);
boolean isEqual = date.isEqual(previousYear);
Если мы напишем в консоль:
System.out.println(isAfter);
System.out.println(isBefore);
System.out.println(isEqual);
То получим следующий вывод:
false
true
false
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
😁5✍3👨💻1
Какая аннотация Spring помечает метод-слушатель событий?
Anonymous Quiz
29%
4%
57%
2%
Посмотреть ответ
✍2👍2🎉2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4💯4👍1
Знакомство с классом LocalDate в Java. Часть 2.
Форматирование и разбор даты.
Методы format() и parse() позволяют форматировать объект LocalDate в строку и обратно. Например:
// Создаём переменную date
LocalDate date = LocalDate.of(2025, 7, 23);
// Форматируем дату в строку по конкретному паттерну
String formattedDate = date.format(DateTimeFormatter.ofPattern("dd.MM.yyyy"));
// Получаем дату из переданной строки
LocalDate parsedDate = LocalDate.parse(
"23.07.2025",
DateTimeFormatter.ofPattern("dd.MM.yyyy")
);
System.out.println(formattedDate);
System.out.println(parsedDate);
Вывод переменных в консоль:
23.07.2025
2025-07-23
✅ JavaStart. Подписаться
Форматирование и разбор даты.
Методы format() и parse() позволяют форматировать объект LocalDate в строку и обратно. Например:
// Создаём переменную date
LocalDate date = LocalDate.of(2025, 7, 23);
// Форматируем дату в строку по конкретному паттерну
String formattedDate = date.format(DateTimeFormatter.ofPattern("dd.MM.yyyy"));
// Получаем дату из переданной строки
LocalDate parsedDate = LocalDate.parse(
"23.07.2025",
DateTimeFormatter.ofPattern("dd.MM.yyyy")
);
System.out.println(formattedDate);
System.out.println(parsedDate);
Вывод переменных в консоль:
23.07.2025
2025-07-23
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👨💻3✍2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍3👨💻1
Какой метод Stream API завершит вычисления, как только найден первый элемент, удовлетворяющий условию?
Anonymous Quiz
2%
filter()
80%
findFirst()
15%
anyMatch()
1%
collect()
1%
Посмотреть ответ
👍3✍2🎉2
Что делает аннотация @Slf4j (Lombok)?
Anonymous Quiz
30%
Генерирует статическое поле-логгер и методы logInfo, logError
39%
Генерирует поле логгера выбранного фреймворка (по умолчанию SLF4J)
3%
Добавляет поддержку Structured Logging в JVM
8%
Перехватывает исключения и логирует их автоматически
20%
Посмотреть ответ
✍3👍3🎉1
Знакомство с классом LocalDate в Java. Часть 3.
Пример использования LocalDate на коммерческом проекте.
Допустим, у нас есть задача вычислить дату через два месяца от текущей даты и проверить, выпадает ли она на выходной день:
Введем переменную currentDate, которая будет соответствовать фиксированной дате (20 июля 2025). Введем переменную twoMonthsLater, которая будет соответствовать дате, которая старше нашей на 2 месяца.
Пропишем условие, которое будет проверять, выпадает ли наша новая дата twoMonthsLater на выходной день или нет (Картинка 1).
Чтобы получить конкретный день нашей новой даты, воспользуемся методом класса LocalDate - getDayOfWeek(), а также проверки нужного дня недели воспользуемся энамом DayOfWeek из того же пакета java.time. И сделаем сравнение (Картинка 2).
Вывод в консоль на Картинке 2.
✅ JavaStart. Подписаться
Пример использования LocalDate на коммерческом проекте.
Допустим, у нас есть задача вычислить дату через два месяца от текущей даты и проверить, выпадает ли она на выходной день:
Введем переменную currentDate, которая будет соответствовать фиксированной дате (20 июля 2025). Введем переменную twoMonthsLater, которая будет соответствовать дате, которая старше нашей на 2 месяца.
Пропишем условие, которое будет проверять, выпадает ли наша новая дата twoMonthsLater на выходной день или нет (Картинка 1).
Чтобы получить конкретный день нашей новой даты, воспользуемся методом класса LocalDate - getDayOfWeek(), а также проверки нужного дня недели воспользуемся энамом DayOfWeek из того же пакета java.time. И сделаем сравнение (Картинка 2).
Вывод в консоль на Картинке 2.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3✍2🔥2👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6💯4✍2❤1
Что произойдёт, если у класса record явно переопределить метод hashCode() и не переопределить equals()?
Anonymous Quiz
55%
Допустимо, но нарушит контракт equals/hashCode, что приведёт к некорректной работе Set/Map
12%
Ошибка компиляции - оба метода должны переопределяться вместе
16%
Javac автоматически сгенерирует совместимый equals()
6%
JVM проигнорирует пользовательский hashCode() и оставит сгенерированный
10%
Посмотреть ответ
✍3👍3🎉1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5💯3👍2
Какой из Collectors лучше всего подходит для подсчёта количества элементов потока?
Anonymous Quiz
13%
Collectors.toList()
45%
Collectors.counting()
11%
Collectors.summingInt()
19%
Collectors.reducing(0, e -> 1, Integer::sum)
12%
Посмотреть ответ
✍4👍3❤1🎉1
ООП, Инкапсуляция в Java простыми словами. Часть 1.
Инкапсуляция – это одна из четырёх фундаментальных концепций ООП. Названия оставшихся трёх: наследование, полиморфизм, абстракция.
Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных.
Для достижения инкапсуляции в Java:
1) Объявите переменные класса как private;
2) Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.
Рассмотрим пример Инкапсуляции на Картинке 1.
У нас есть некий класс EncapsulationClass со своими атрибутами – 3 private поля: name, id и age. А значит напрямую эти поля недоступны из других классов. Но также у нас есть публичные (public) методы, взаимодействующие с этими приватными полями. Следовательно, эти методы доступны в других классах.
Публичные методы setXXX() и getXXX() являются точками доступа переменных экземпляра класса EncapsulationClass. Обычно эти методы упоминаются как геттеры и сеттеры (Getters and Setters).
Следовательно, любой класс, который хочет получить доступ к переменным, должен получить к ним доступ через эти геттеры и сеттеры.
Доступ к переменным класса EncapsulationClass можно получить следующей программой (Картинка 2).
Мы получим следующий результат:
Имя: Олег, возраст: 28.
✅ JavaStart. Подписаться
Инкапсуляция – это одна из четырёх фундаментальных концепций ООП. Названия оставшихся трёх: наследование, полиморфизм, абстракция.
Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных.
Для достижения инкапсуляции в Java:
1) Объявите переменные класса как private;
2) Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.
Рассмотрим пример Инкапсуляции на Картинке 1.
У нас есть некий класс EncapsulationClass со своими атрибутами – 3 private поля: name, id и age. А значит напрямую эти поля недоступны из других классов. Но также у нас есть публичные (public) методы, взаимодействующие с этими приватными полями. Следовательно, эти методы доступны в других классах.
Публичные методы setXXX() и getXXX() являются точками доступа переменных экземпляра класса EncapsulationClass. Обычно эти методы упоминаются как геттеры и сеттеры (Getters and Setters).
Следовательно, любой класс, который хочет получить доступ к переменным, должен получить к ним доступ через эти геттеры и сеттеры.
Доступ к переменным класса EncapsulationClass можно получить следующей программой (Картинка 2).
Мы получим следующий результат:
Имя: Олег, возраст: 28.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3✍2👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4🔥3👍1
Что вернёт вызов Stream.of(1,2,3).map(i -> i*2).collect(Collectors.toSet()) ?
Anonymous Quiz
7%
[2,4,6] (List)
1%
Optional[6]
84%
{2,4,6} (Set)
0%
Stream<Integer>
7%
Посмотреть ответ
✍4👍3🎉1