В Java метод
Arrays.binarySearch() выполняет бинарный поиск в отсортированном массиве, возвращая индекс найденного элемента. Если элемент не найден, возвращается отрицательное значение, указывающее потенциальную позицию вставки.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
В Java метод
Comparator.reverseOrder() создаёт компаратор, который сортирует элементы в порядке убывания. Это удобно для работы с сортировкой коллекций, когда нужно изменить стандартный порядок.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Как работает
CompletableFuture в Java, чем он отличается от Future, и как использовать метод thenCombine() для выполнения параллельных задач?Ответ
Пример использования
import java.util.concurrent.CompletableFuture;
public class Main {
public static void main(String[] args) {
// Первая асинхронная задача
CompletableFuture<Integer> task1 = CompletableFuture.supplyAsync(() -> {
try {
Thread.sleep(1000); // Эмуляция задержки
} catch (InterruptedException e) {
e.printStackTrace();
}
return 10;
});
// Вторая асинхронная задача
CompletableFuture<Integer> task2 = CompletableFuture.supplyAsync(() -> 20);
// Комбинируем результаты двух задач
CompletableFuture<Integer> combined = task1.thenCombine(task2, Integer::sum);
// Получаем и выводим результат
combined.thenAccept(result -> System.out.println("Сумма: " + result));
// Ждем завершения всех задач (только для примера)
combined.join();
}
}
// Результат выполнения:
// Сумма: 30
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Semaphore
Semaphore — это класс, который позволяет ограничивать количество потоков, одновременно работающих с каким-либо ресурсом.
Поток должен получить разрешение, чтобы войти в критическую секцию.
Если разрешений нет, поток ставится в очередь до освобождения.
Метод
Java Learning 👩💻
Semaphore — это класс, который позволяет ограничивать количество потоков, одновременно работающих с каким-либо ресурсом.
Поток должен получить разрешение, чтобы войти в критическую секцию.
Semaphore управляет набором разрешений (permits), а конструктор принимает количество разрешений.Если разрешений нет, поток ставится в очередь до освобождения.
Метод
acquire() получает разрешение, release() — освобождает.Java Learning 👩💻
👍8
ZipFile
Java Learning 👩💻
ZipFile — это класс, который используется для чтения содержимого ZIP-архивов. Он позволяет вам перебирать записи в архиве, получать информацию о них и извлекать их содержимое.Java Learning 👩💻
👍4
В Java метод
HashMap.getOrDefault() возвращает значение для заданного ключа, если он существует, или значение по умолчанию, если ключ отсутствует. Это удобный способ избежать проверки на наличие ключа.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🎄1
Напишите функцию, которая проверяет, содержит ли строка все буквы английского алфавита (a-z). Игнорируйте регистр букв и символы, не являющиеся буквами.
Пример:
System.out.println(isPangram("The quick brown fox jumps over the lazy dog"));
// Ожидаемый результат: true
System.out.println(isPangram("Hello, World!"));
// Ожидаемый результат: falseРешение задачи на картинке
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥2
👩💻 Задача по Java: Проверка строки на наличие всех букв алфавита
Напишите функцию, которая проверяет, содержит ли строка все буквы английского алфавита (a-z). Игнорируйте регистр букв и символы, не являющиеся буквами.
Пример:
Решение задачи на картинке ☝️
Java Learning 👩💻
Напишите функцию, которая проверяет, содержит ли строка все буквы английского алфавита (a-z). Игнорируйте регистр букв и символы, не являющиеся буквами.
Пример:
System.out.println(isPangram("The quick brown fox jumps over the lazy dog"));
// Ожидаемый результат: true
System.out.println(isPangram("Hello, World!"));
// Ожидаемый результат: falseРешение задачи на картинке ☝️
Java Learning 👩💻
👍8
Пояснение
Метод divide вызывает исключение ArithmeticException, так как деление на ноль недопустимо. Исключение перехватывается в блоке catch, где его сообщение выводится. После этого выполняется блок finally, который всегда исполняется независимо от того, было исключение или нет.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
В Java метод
Collections.reverse() изменяет порядок элементов в списке на обратный. Это удобно для работы с коллекциями, где требуется обратный порядок.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
В Java метод
String.replace() заменяет все вхождения указанного символа или подстроки в строке на новое значение. Это удобно для модификации строк без необходимости создания сложных шаблонов.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Что такое метод
finalize() в Java, как он работает и почему его использование не рекомендуется?Ответ
Пример использования
class Resource {
@Override
protected void finalize() throws Throwable {
System.out.println("Ресурс освобожден!");
}
}
public class Main {
public static void main(String[] args) {
new Resource(); // Создаем объект без сохранения ссылки
System.gc(); // Явный вызов сборщика мусора (не гарантирует немедленного выполнения)
System.out.println("Завершение программы");
}
}
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
В Java метод
String.contains() проверяет, содержится ли указанная подстрока в строке. Это удобный способ проверки наличия текста в строке.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
В Java методы
String.startsWith() и String.endsWith() проверяют, начинается или заканчивается строка на указанную подстроку. Это удобно для работы с текстами и валидации.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
#вопросы_с_собеседований
Расскажите про приведение типов. Что такое понижение и повышение типа?
Приведение типов — это преобразование переменной одного типа в другой.
Существует два вида приведения типов:
— Повышение типа (widening): автоматическое преобразование типа в другой, более широкий тип. Например, int в long. При этом не теряется точность, так как широкий тип может представить все значения узкого типа.
— Понижение типа (narrowing): явное приведение к более узкому типу, например double в int. Здесь возможна потеря точности, поэтому требуется явное приведение в коде.
Повышение типа безопасно, компилятор делает его автоматически.
Понижение опасно потерей данных, поэтому разработчик должен явно указать такое приведение в коде, чтобы показать, что он контролирует возможную потерю точности.
Java Learning👩💻
Расскажите про приведение типов. Что такое понижение и повышение типа?
Существует два вида приведения типов:
— Повышение типа (widening): автоматическое преобразование типа в другой, более широкий тип. Например, int в long. При этом не теряется точность, так как широкий тип может представить все значения узкого типа.
— Понижение типа (narrowing): явное приведение к более узкому типу, например double в int. Здесь возможна потеря точности, поэтому требуется явное приведение в коде.
Повышение типа безопасно, компилятор делает его автоматически.
Понижение опасно потерей данных, поэтому разработчик должен явно указать такое приведение в коде, чтобы показать, что он контролирует возможную потерю точности.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1
RefactorFirst
RefactorFirst — это инструмент для Java-кода, помогающий определить и расставить по приоритетам классы, которые следует рефакторить в первую очередь. Он работает, сканируя код на наличие «божественных классов» (God Classes) и классов с высокой степенью связности.
«Божественных классов» — это классы, которые делают слишком много и, следовательно, являются плохо спроектированными. Они могут быть трудными для понимания, тестирования и сопровождения.
Java Learning👩💻
RefactorFirst — это инструмент для Java-кода, помогающий определить и расставить по приоритетам классы, которые следует рефакторить в первую очередь. Он работает, сканируя код на наличие «божественных классов» (God Classes) и классов с высокой степенью связности.
«Божественных классов» — это классы, которые делают слишком много и, следовательно, являются плохо спроектированными. Они могут быть трудными для понимания, тестирования и сопровождения.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
В Java метод
Math.round() округляет число до ближайшего целого значения. Это полезно для обработки чисел с плавающей запятой, если требуется округление до ближайшего целого.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Fastjson
Fastjson — это высокопроизводительная библиотека Java, предназначенная для преобразования объектов Java в JSON и наоборот. Она легкая, быстрая и простая в использовании.
Java Learning👩💻
Fastjson — это высокопроизводительная библиотека Java, предназначенная для преобразования объектов Java в JSON и наоборот. Она легкая, быстрая и простая в использовании.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
В Java метод
subList() позволяет создать представление части списка. Это удобно для работы с подмножествами коллекций без необходимости копирования элементов.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8