Java Learning – Telegram
Java Learning
18.3K subscribers
1.62K photos
2 videos
3 files
1K links
№ 5079899194

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

Ссылка для друга - https://news.1rj.ru/str/+ZEYYht6-46w5MDM6

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
🚫 Антипаттерн недели: Неиспользование try-with-resources при работе с ресурсами

В Java важно гарантированно закрывать ресурсы (файлы, потоки, соединения). Если этого не делать, возможны утечки памяти и зависание приложения.

✔️ Используйте try-with-resources, чтобы автоматически закрывать ресурсы.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
⚙️ AnsiConsole.out.println()

AnsiConsole.out.println() из библиотеки Jansi позволяет выводить цветной текст в консоль, упрощая создание стилизованных CLI-приложений с поддержкой ANSI-escape последовательностей.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
⚙️ Lombok @SuperBuilder

@SuperBuilder из библиотеки Lombok упрощает создание объектов с помощью паттерна "Builder" и поддерживает наследование, избавляя от лишнего кода при создании сложных иерархий классов.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
⚙️ String.stripIndent()

String.stripIndent() удаляет общие начальные пробелы во всех строках многострочного текста, делая его более читаемым и удобным для форматирования. Это полезно при работе с блоками текста в коде.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
⚙️ CompletableFuture.delayedExecutor()

CompletableFuture.delayedExecutor() позволяет выполнить задачу с отложенным запуском без блокировки основного потока. Это удобный инструмент для асинхронных операций с задержкой.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
⚙️ CompletableFuture.delayedExecutor()

CompletableFuture.delayedExecutor() позволяет выполнить задачу с отложенным запуском без блокировки основного потока. Это удобный инструмент для асинхронных операций с задержкой.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
⚙️ Optional.orElseThrow()

Optional.orElseThrow() — это метод, который выбрасывает исключение, если Optional пуст. В отличие от orElse(), он не требует значения по умолчанию, а вместо orElseGet() не создаёт ненужные объекты.

🔗 Документация

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

Пояснение
⬇️
TreeSet хранит элементы в отсортированном порядке. Добавленные числа автоматически сортируются, поэтому выводится [1, 2, 3, 5]. Код выполняется без ошибок.


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
⚙️ MemorySegment.allocateNative()

MemorySegment.allocateNative() из Java Foreign Function & Memory API (FFM API, начиная с Java 19) позволяет безопасно управлять нативной памятью без Unsafe. Это полезно для высокопроизводительных приложений, работающих с C-библиотеками.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤‍🔥1
⚙️ MethodHandles.lookup().findVirtual()

MethodHandles.lookup().findVirtual() позволяет динамически получать и вызывать методы классов без рефлексии, обеспечивая лучшую производительность и безопасность. Это полезно для метапрограммирования и динамических вызовов.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🚫 Антипаттерн недели: Неправильное использование try-catch

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

✔️ Перехватывайте только ожидаемые исключения и избегайте пустых catch-блоков.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
⚙️ VarHandle.compareAndExchange()

VarHandle.compareAndExchange() позволяет атомарно обновлять значения переменной, только если текущее значение соответствует ожидаемому. Это полезно для реализации lock-free структур данных и многопоточной синхронизации.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚙️ FileDenoscriptor.sync()

FileDenoscriptor.sync() в Java позволяет принудительно записать все несохранённые данные из буфера операционной системы на диск. Это полезно для обеспечения целостности данных в случае сбоя или отключения питания.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
⚙️ ProcessBuilder.redirectOutput()

ProcessBuilder.redirectOutput() позволяет перенаправлять стандартный вывод (stdout) запускаемого процесса в файл или в другой поток. Это полезно при работе с внешними процессами и логированием их вывода.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🚫 Антипаттерн недели: Использование == для сравнения строк

В Java строки — это объекты, а оператор == сравнивает ссылки в памяти, а не их содержимое. Это может привести к неожиданным ошибкам.

✔️ Используйте .equals() для корректного сравнения строк.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😢2
⚙️ JMH (Java Microbenchmark Harness)

JMH — это мощная библиотека для написания точных микробенчмарков в Java. Она позволяет измерять производительность кода, избегая ошибок, вызванных JIT-компиляцией и оптимизациями JVM.

🔗 Документация

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

Пояснение
⬇️
Метод append(" World") добавляет строку в конец, а insert(5, ",") вставляет запятую после "Hello". Итоговая строка: "Hello, World". Код выполняется корректно.


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
⚙️ SecureRandom.getInstanceStrong()

SecureRandom.getInstanceStrong() возвращает криптографически безопасный генератор случайных чисел, основанный на алгоритмах операционной системы. Это полезно для генерации ключей, токенов и защиты данных.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4