👍4
Метод
Files.isReadable() из java.nio.file проверяет, доступен ли файл для чтения. Это полезно для предварительной проверки перед открытием файла.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Метод
partitioningBy из класса Collectors используется для разделения элементов потока на две группы, основываясь на предикате. Он возвращает карту с двумя списками: одна группа удовлетворяет предикату, другая — нет.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍8🔥5
Метод
MethodHandle.invokeExact() из пакета java.lang.invoke позволяет вызывать метод или конструктор через ссылку MethodHandle. Это мощный инструмент для динамического вызова методов с высокой производительностью.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Метод
Stream.generate() используется для создания бесконечного потока элементов, генерируемых функцией. Это полезно для создания потоков случайных данных, шаблонов или повторяющихся значений.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Метод
MethodHandles.privateLookupIn позволяет получить доступ к приватным методам, полям и конструкторам класса через MethodHandle. Это мощный и редкий инструмент для работы с закрытыми членами классов.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
String вместо StringBuilder при конкатенации в циклеВ Java строки (
String) неизменяемы. При каждой конкатенации через + создаётся новый объект, что приводит к избыточным затратам памяти и снижает производительность, особенно в циклах.StringBuilder, который изменяем и работает быстрее при частых операциях с текстом.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Метод
Files.mismatch(), добавленный в Java 12, позволяет сравнить два файла и найти позицию первого несовпадающего байта. Если файлы идентичны, метод возвращает -1. Это полезно для проверки целостности данных или сравнения файлов.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Метод
LockSupport.park() позволяет приостановить выполнение потока без использования synchronized или wait(). Это полезно для низкоуровневой синхронизации потоков.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
JarFile
Создание объекта JarFile
Для создания объекта
Java Learning👩💻
JarFile — это класс в Java, который используется для чтения содержимого JAR-файла. JAR-файл (Java ARchive) — это формат архива, который используется для объединения нескольких файлов Java (.class), а также других ресурсов, таких как изображения, звуки и текстовые файлы, в один файл.Создание объекта JarFile
Для создания объекта
JarFile необходимо использовать его конструктор, который принимает путь к JAR-файлу в качестве параметра.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Метод
MethodHandles.arrayElementVarHandle() создаёт VarHandle для работы с элементами массива, позволяя выполнять атомарные операции без блокировки.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Метод
StackWalker.walk() позволяет динамически получать информацию о текущем стеке вызовов, фильтровать его и анализировать. Это полезно для логирования, отладки и мониторинга исполнения кода.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Метод
Thread.onSpinWait() сообщает процессору, что поток ожидает без выполнения полезной работы. Это позволяет улучшить производительность в многопоточных приложениях, уменьшая нагрузку на процессор во время активного ожидания.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Метод
java.util.Timer() позволяет создавать таймеры, которые выполняют определенные задачи через заданные интервалы времени. Это полезно для планирования и отложенного выполнения задач без блокировки основного потока.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Что такое ThreadLocal в Java, и зачем он нужен?
Ответ
Пример использования
public class ThreadLocalExample {
private static final ThreadLocal<Integer> threadLocal = ThreadLocal.withInitial(() -> 0);
public static void main(String[] args) {
Runnable task = () -> {
threadLocal.set((int) (Math.random() * 100));
System.out.println(Thread.currentThread().getName() + ": " + threadLocal.get());
};
new Thread(task).start();
new Thread(task).start();
}
}
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Пояснение
Метод split(",") разделяет строку "apple,banana,orange" по запятой, создавая массив ["apple", "banana", "orange"]. Длина массива — 3, а элемент fruits[1] — "banana". Код выполняется без ошибок.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👍3
MethodHandles.dropArguments() создаёт MethodHandle, который игнорирует определённые аргументы перед вызовом целевой функции. Это полезно для адаптации методов с разными сигнатурами.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
null вместо OptionalВ Java часто используют
null для обозначения отсутствия значения, но это может привести к NullPointerException и усложнить код.Optional, чтобы избежать null и сделать код безопаснее.Optional явно показывает, что значение может отсутствовать.null-проверок и улучшает читаемость кода.map(), orElse()).Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8