Метод
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
Locale.getDefault() позволяет получить текущую локаль системы, что полезно для работы с форматированием дат, чисел и текста.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Thread.getState() позволяет получить текущее состояние потока. Это полезно при отладке многопоточных программ, чтобы отслеживать, выполняется ли поток, заблокирован или завершён.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
ProcessHandle.isAlive() позволяет проверить, запущен ли процесс в данный момент. Это полезно при мониторинге фоновых процессов и управлении системными ресурсами.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3