Пояснение
Статический блок выполняется один раз при первом обращении к классу, до выполнения 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