Singleton — это паттерн проектирования, который гарантирует, что у класса есть только один экземпляр. Он часто используется для управления ресурсами, такими как подключения к базе данных. Давайте разберём реализацию.
• Поле instance хранит единственный экземпляр класса.• Конструктор private, чтобы предотвратить создание новых экземпляров.• Метод getInstance() создаёт экземпляр только при первом вызове (ленивая инициализация).Развернутый аналог:
// Экземпляр можно также создавать сразу, а не лениво:
private static final Singleton instance = new Singleton();
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Метод
Files.createTempFile() из пакета java.nio.file используется для создания временного файла, который можно использовать для временного хранения данных. Это удобно для работы с временными данными, которые не нужно сохранять надолго.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Метод
MethodHandles.insertArguments() в Java позволяет создавать новый MethodHandle, в котором заранее фиксируются значения для некоторых аргументов метода. Это полезно для частичного применения аргументов к методам и упрощения их вызова.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Метод
MethodHandles.arrayElementGetter() позволяет создать MethodHandle, который получает элементы из массива. Это полезно для работы с массивами через рефлексию.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Метод
Files.copy() позволяет копировать содержимое файлов или потоков данных.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Метод
Files.probeContentType() определяет тип содержимого файла (MIME type). Это полезно для работы с различными типами данных в файлах.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Что такое
Optional.empty(), и как оно помогает избежать null в Java?Ответ
Пример использования
import java.util.Optional;
public class Main {
public static void main(String[] args) {
Optional<String> optional = Optional.empty();
// Проверка наличия значения
System.out.println(optional.orElse("Значение отсутствует")); // Значение отсутствует
// Работа с методом ifPresent
optional.ifPresent(value -> System.out.println("Значение: " + value));
}
}
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Метод
Stream.flatMapToInt() используется для преобразования элементов потока в другой поток примитивов int. Это удобно для обработки вложенных структур данных и работы с примитивами.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Вместо того чтобы использовать явные циклы для поиска элемента в коллекции, Java предоставляет методы для упрощения и оптимизации таких операций, особенно с использованием Stream API.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8😁1
Пояснение
Метод append добавляет " World" в конец строки, а insert вставляет запятую на позицию 5 (после Hello). Результирующая строка: Hello, World. Код выполняется корректно.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👍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