Java Learning
18.6K subscribers
1.62K photos
1 video
3 files
1K links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
✔️ Упрощение потоков данных: Stream.toList() в Java

Java 16 представила удобный метод Stream.toList(), который упрощает преобразование стрима в неизменяемый список.

👀 Это небольшое, но полезное улучшение, которое помогает писать более чистый и лаконичный код.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
⚙️ Эффективное управление памятью: MemorySegment в Java

Мощный API для управления памятью — MemorySegment, который является частью Project Panama.

🗣️ Этот API позволяет безопасно и эффективно управлять памятью вне кучи, предоставляя новые возможности для продвинутых пользователей

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔1
✔️ Удобная работа с текстом: Текстовые блоки в Java

Java 13 представила удобную возможность для работы с многострочными строками — текстовые блоки.

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
👀 Метапрограммирование с помощью Java

Java 16 представила новую функциональность, позволяющую динамически изменять классы во время выполнения — метапрограммирование.

🗣️ Метапрограммирование может упростить решение некоторых сложных задач, таких как обработка аннотаций, создание динамических прокси и многое другое

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
💪 Мощный инструмент в одной строке: Метод of()

Метод of() обеспечивает компактный способ создания неизменяемых коллекций.

🗣️ Этот метод является удобным и эффективным инструментом для создания коллекций с набором известных элементов.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
➡️ Использование Local-Variable Type Inference

✔️ Функция Local-Variable Type Inference позволяет объявлять локальные переменные без явного указания их типа, что делает код более компактным и улучшает его читаемость

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141😢1
➡️ Мощь статических методов: Использование методов интерфейсов

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

🗣В интерфейсе ListUtils определен статический метод max, который находит максимальный элемент в коллекции.

🗣В методе main мы вызываем статический метод max из интерфейса ListUtils, передавая ему список чисел.

🗣Мы выводим найденное максимальное число на экран.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
✔️ Использование Flow API для реактивного программирования

Java 9 представила Flow API, который обеспечивает стандартный интерфейс для реализации реактивного программирования.

🗣️ Flow API позволяет создавать асинхронные, нелокальные потоки данных, упрощая работу с реактивными системами.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
➡️ Сила коллекций: Неизменяемые коллекции в Java

Java 10 ввела полезную возможность создания неизменяемых копий коллекций с помощью новых методов copyOf.

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
✔️ Использование Collectors.teeing для объединения потоков

Java 12 представила новый метод Collectors.teeing, который позволяет объединить результаты двух различных коллекторов в один итоговый результат.

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤔1
⚙️ Более эффективная работа с коллекциями

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