В Java метод
Collections.unmodifiableList() создаёт неизменяемый (immutable) список на основе существующего. Это удобно, когда нужно защитить коллекцию от изменений после её создания.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
Пояснение
Статический блок выполняется один раз при первом обращении к классу, до выполнения main(). В статическом блоке значение x увеличивается на 10, поэтому x становится 15.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🔥6👍1
Метод
Math.floorMod в Java выполняет деление по модулю с учётом знаков, возвращая всегда положительный остаток. Это полезно при работе с круговыми индексами или в математике с отрицательными числами.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11😱1
Метод
append() класса StringBuilder позволяет эффективно добавлять строки к уже существующему объекту. В отличие от конкатенации строк с использованием оператора +, StringBuilder позволяет избежать создания новых объектов строк в процессе добавления.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Метод
System.nanoTime() в Java используется для получения текущего времени с высокой точностью, измеряемого в наносекундах. Этот метод полезен для точного измерения времени выполнения операций, например, для профилирования производительности вашего кода.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Что такое
ConcurrentHashMap в Java, как он работает и чем отличается от HashMap в многопоточной среде?Ответ
Пример использования
import java.util.concurrent.ConcurrentHashMap;
public class Main {
public static void main(String[] args) {
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("Alice", 1);
map.put("Bob", 2);
map.computeIfPresent("Alice", (key, val) -> val + 1);
System.out.println(map); // {Alice=2, Bob=2}
}
}
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Apache POI
Apache POI – это библиотека с открытым исходным кодом для работы с форматами файлов Microsoft Office в Java.
Она позволяет читать, создавать и редактировать файлы Excel, Word, PowerPoint и другие.
Java Learning👩💻
Apache POI – это библиотека с открытым исходным кодом для работы с форматами файлов Microsoft Office в Java.
Она позволяет читать, создавать и редактировать файлы Excel, Word, PowerPoint и другие.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
В Java метод
Collectors.toSet() из Stream API позволяет собрать элементы потока в Set, автоматически убирая дубликаты.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
Метод
Map.replace() позволяет заменить значение, связанное с определённым ключом, если этот ключ уже существует в словаре. Это полезно для безопасного обновления данных.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
В Java метод
CompletableFuture.supplyAsync() позволяет выполнять асинхронные задачи в фоновом потоке, возвращая результат. Это удобно для выполнения длительных операций без блокировки основного потока.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
for-eachВ Java цикл
for-each (или enhanced for loop) упрощает итерацию по коллекциям и массивам. Давайте посмотрим, как он работает.• numbers — это массив целых чисел.• В строке for (int number : numbers) переменная number последовательно принимает значения из массива numbers.• На каждой итерации выводится текущее значение number.Развернутый аналог:
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
1
2
3
4
5Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Если использовать блокировки (
synchronized) и забыть их освободить в случае исключения, можно легко привести к deadlock (взаимоблокировке).Если во время выполнения блока synchronized возникает исключение, блокировка остаётся захваченной, что может заблокировать другие потоки навсегда.
Используйте
try-finally для гарантированного освобождения блокировки:public class FixedExample {
private final Object lock = new Object();
public void performTask() {
synchronized (lock) {
try {
System.out.println("Задача выполняется...");
if (true) {
throw new RuntimeException("Ошибка!");
}
System.out.println("Задача завершена.");
} finally {
System.out.println("Блокировка освобождена.");
}
}
}
public static void main(String[] args) {
FixedExample example = new FixedExample();
example.performTask();
}
}Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Напоминаю, что у нас есть свой чат, где вы можете задать свой вопрос
@Java_Learning_Chat
@Java_Learning_Chat
🎄2❤🔥1
В Java класс
ThreadLocal позволяет хранить переменные, привязанные к конкретному потоку. Каждый поток имеет свою копию переменной, что удобно для работы с многопоточностью, когда нужно избежать совместного доступа к данным.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥1
Пояснение
Массивы в Java передаются по ссылке. Метод modifyArray изменяет первый элемент массива на 42. Изменение сохраняется, потому что arr и numbers указывают на один и тот же массив.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👍7🎄4
В Java метод
Stream.flatMap() используется для преобразования каждого элемента потока в другой поток и «выпрямления» (объединения) этих потоков в один. Это полезно для работы со вложенными структурами данных, такими как списки списков.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
В Java класс
Phaser из пакета java.util.concurrent является синхронизатором для управления фазами выполнения в многопоточной среде. Он позволяет координировать выполнение задач, разбитых на этапы (фазы), и является более гибкой альтернативой CountDownLatch и CyclicBarrier.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤔1
Как работает концепция
method reference в Java и в каких случаях она может быть полезна?Ответ
Типы ссылок на методы:
Ссылка на статический метод
Ссылка на метод экземпляра
Ссылка на конструктор
Пример использования
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
// Использование method reference для вывода элементов
names.forEach(System.out::println);
// Без использования method reference
names.forEach(name -> System.out.println(name));
}
}
В этом примере System.out::println является ссылкой на метод, заменяющей более громоздкое лямбда-выражение name -> System.out.println(name). Это улучшает читаемость и делает код компактнее.
Когда полезно использовать:
Когда у вас уже есть готовые методы для выполнения задачи.
Когда необходимо сделать код чище и понятнее.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1