Telegram Web Link
⚙️ Более эффективная работа с коллекциями

Java предоставляет множество мощных инструментов для работы с коллекциями. Одним из них является Collectors.partitioningBy, который позволяет разделить элементы потока на две группы на основе заданного предиката.

➡️ Эта функция упрощает обработку и классификацию данных.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍231
➡️ Фабричный метод коллекции

✔️ Коллекции — наиболее часто используемая функция в нашем ежедневном программировании. Они используются в качестве контейнера, в котором мы храним объекты и передаем их дальше.

Коллекции также используются для сортировки, поиска и перебора объектов, что упрощает жизнь программиста. Он предоставляет несколько базовых интерфейсов, таких как List, Set, Map и т. д., а также множество реализаций.

Традиционный способ создания коллекций и карт может показаться многим разработчикам многословным.

👀 Вот почему в Java 9 появилось несколько очень кратких фабричных методов.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
➡️ Новые варианты применения instanceof из Java 16

Чтобы проверить, к какому классу относится объект, используют оператор instanceof. Если нужно проверить объект и привести его к нужному виду, раньше объявляли переменную, присваивали ей тип, а затем проверяли объект:

Object string = "this is string!";

if(string instanceof String){
String realString = (String) string;
System.out.println(realString);
}


✔️ Начиная с Java 16 присвоение не требуется. Значение переменной можно задать прямо в выражении:

if(string instanceof String realString){
System.out.println(realString);
}


🗣️ Если условие проверки не выполняется, оператор instanceof не ограничивается фигурными скобками внутри условия if, а проверяет код дальше:

Object object = 23;

if (!(object instanceof Number number)) {
throw new IllegalArgumentException("this is not a Number!");
}

System.out.prin


⚙️ То есть проверка !(object instanceof Number number) выдаёт результат false, и после выхода из if мы можем использовать number для реализации своей логики.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Что будет выведено при выполнении кода?

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
➡️ Использование Optional для работы с потенциально null значениями

Использование Optional позволяет более безопасно работать с потенциально null значениями в Java.

🗣️ Этот подход помогает предотвратить распространенные ошибки, такие как NullPointerException, и делает код более читаемым и надежным.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Использование LocalDate и DateTimeFormatter для работы с датами

LocalDate и DateTimeFormatter предоставляют удобные и безопасные методы для работы с датами в Java.

🗣️ Этот подход упрощает задачи форматирования и парсинга дат, что делает код более читаемым и менее подверженным ошибкам.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥1
⚙️ Усовершенствуйте параллелизм с java.util.stream.Collectors и группировкой

Использование Collectors.groupingBy в Java Streams позволяет легко и эффективно группировать данные, улучшая читаемость и производительность кода.

➡️ Это мощный инструмент для обработки коллекций, который помогает упростить сложные операции и сделать ваш код более понятным и поддерживаемым.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
⚙️ Использование метода Map.computeIfAbsent() для ленивой инициализации значений

Метод computeIfAbsent() представляет собой мощный инструмент для ленивой инициализации значений в Map в Java. Он улучшает читаемость и эффективность кода, позволяя избежать лишних проверок и упрощая добавление значений в коллекцию.

➡️ Эта фишка особенно полезна при работе с динамическими данными, где необходимо эффективно управлять созданием и обновлением значений в Map.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
➡️ Использование методов по умолчанию в интерфейсах Java

ℹ️ Методы по умолчанию введены в Java 8 для предоставления возможности добавлять новые функции в существующие интерфейсы без необходимости изменения классов, которые эти интерфейсы реализуют.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚙️ Подключение к базе данных с использованием JDBC

Импорт пакетов и классов: Импортируем необходимые классы для работы с JDBC.

Настройка подключения: Задаем URL, имя пользователя и пароль для подключения к базе данных MySQL. Замените их соответствующими значениями для вашей базы данных.

Подключение к базе данных: В блоке try создаем соединение с базой данных, используя метод DriverManager.getConnection(url, username, password). Здесь используется try-with-resources, что автоматически закрывает соединение после завершения блока try.

Обработка исключений: В блоке catch обрабатываем возможные исключения, которые могут возникнуть при подключении к базе данных.

🗣️ Этот короткий пример демонстрирует основные шаги для подключения к базе данных MySQL с использованием JDBC в Java.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
➡️ Как объединить два списка в Java?

Этот код демонстрирует, как объединить два списка list1 и list2 в Java, создав новый список mergedList, который содержит все элементы из обоих исходных списков. В результате выполнения кода будет напечатан объединенный список.

🗣️ Этот подход часто используется на практике при работе с коллекциями в Java.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Что будет выведено при выполнении кода?

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ Удобное логирование с использованием Java Logger

Логирование — это важный аспект разработки приложений, который помогает отслеживать выполнение программы и диагностировать проблемы.

🗣️ В Java для этого можно использовать java.util.logging.Logger, который предоставляет гибкие возможности для логирования сообщений разного уровня.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
⚙️ Хотите убедиться, что JVM ничего про них не знает?

Эта программа не только компилируется, но и на самом деле кидает SQLException. Вам даже не нужен SneakyThrows из Lombok'а.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤔3
👀 Случайные целочисленные числа

Теперь более трудное задание. Не читайте решение. Посмотрите сможете ли вы найти
ответ самостоятельно. Когда я запущу следующую программу:

for (int i = 0; i < 10; i++) {
System.out.println((Integer) i);
}


Иногда я получаю следующий вывод:

92
221
45
48
236
183
39
193
33
84


➡️ Но как такое вообще возможно? Ответ в кроется в переопределении JDK кеша Integer через рефлексию, и затем в использовании auto-boxing и auto-unboxing.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔5
➡️ Вложенные в интерфейсы классы

Вложенный (nested) в интерфейс класс является открытым (public) и статическим (static) даже без явного указания этих модификаторов. Помещая класс внутрь интерфейса, мы показываем, что он является неотъемлемой частью API этого интерфейса и более нигде не используется.

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

Colorable.Color color = new Colorable.Color(0, 0, 0);
color = new Triangle.Color(255, 255, 255);


🗣️ Самым, наверное, известным примером этой идиомы является класс Map.Entry<K, V>, содержащий пары ключ-значение ассоциативного словаря.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
2025/07/10 17:17:19
Back to Top
HTML Embed Code: