TGViewer
Channel Public Channel
Java задачи с собеседований

Java задачи с собеседований

@javaquiz

Задачи, тесты и теоретические вопросы по JAVA.

Репозиторий: https://github.com/proghub-official/java-interview
Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Subscribers
5.71K
Photos
756
Videos
7
Links
271

Showing posts older than #2118 · Back to latest

Older Posts 20 shown
Post #2116 1.39K
⚙️ ProcessHandle.isAlive() позволяет узнать, активен ли процесс в данный момент. Это полезно для отслеживания фоновых процессов и управления ресурсами системы.

👩‍💻
@javaquiz
  • 👎 1
Post #2113 1.22K
⚙️ Метод Thread.getState() позволяет узнать текущее состояние потока. Это полезно для отладки многопоточных программ, так как помогает определить, выполняется ли поток, заблокирован он или завершён.

👩‍💻
@javaquiz
Post #2112 1.27K
⚙️ Locale.getDefault()

Locale.getDefault() дает возможность узнать текущую локаль системы, что полезно при форматировании дат, чисел и текста.

👩‍💻
@javaquiz
Post #2111 1.35K
⚙️ StackWalker.getInstance() позволяет извлекать данные о стеке вызовов в процессе работы программы, что облегчает отладку и ведение логов. 👩‍💻
@javaquiz
Post #2107 1.32K
⚙️ MethodHandles.dropArguments()

MethodHandles.dropArguments() создает MethodHandle, который не учитывает некоторые аргументы при вызове целевой функции. Это удобно для адаптации методов с различными сигнатурами.

👩‍💻
@javaquiz
Post #2102 1.33K
⚙️ ProcessHandle.children()

ProcessHandle.children() предоставляет поток (Stream) дочерних процессов текущего процесса. Это может быть полезно для отслеживания запущенных подпроцессов и их управления.

👩‍💻
@javaquiz
Post #2100 1.38K
❓ Вопрос на собеседовании

Что такое ThreadLocal в Java и для чего он используется?

Ответ ⬇️
ThreadLocal — это механизм, который позволяет каждому потоку хранить уникальное значение переменной, изолированное от других потоков. Это особенно полезно для управления состоянием в многопоточных приложениях, например, для хранения информации о текущем пользователе в веб-приложениях.

Пример использования ⚙️
public class ThreadLocalExample {
private static final ThreadLocal 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();
}
}

👩‍💻
@javaquiz
Post #2098 1.37K
Метод Thread.yield() уведомляет планировщик потоков о том, что текущий поток готов отдать процессор другим потокам с тем же приоритетом. Это полезно для управления многопоточными задачами без использования блокировок.

👩‍💻
@javaquiz
Post #2097 1.46K
⚙️ java.util.Timer()

Метод java.util.Timer() дает возможность создавать таймеры, которые выполняют определенные задачи через установленные временные интервалы. Это удобно для планирования и отложенного выполнения задач без блокировки основного потока.

👩‍💻
@javaquiz
  • 👍 1
Post #2096 1.37K
🚫 Антипаттерн недели: Неправильное использование оператора == для сравнения строк

В Java строки (String) являются объектами, а оператор == сравнивает их ссылки, а не содержимое. Это может вызвать неожиданные ошибки при сравнении строк, особенно если они создаются динамически.

✔️ Лучше использовать метод equals(), который сравнивает именно содержимое строк, а не их ссылки.

👩‍💻
@javaquiz
  • 🔥 4
Post #2095 1.52K
❓ Вопрос на собеседовании

Как функционируют виртуальные потоки в Java и чем они отличаются от обычных потоков?

Ответ ⬇️
Виртуальные потоки появились в Java 21 и позволяют создавать огромное количество потоков без значительных затрат ресурсов. В отличие от обычных потоков, которые зависят от системных потоков операционной системы, виртуальные потоки управляются самой Java Virtual Machine и не блокируют системные ресурсы.

Использование виртуальных потоков значительно улучшает производительность приложений, которые выполняют множество операций ввода-вывода, например, сетевых запросов.

Пример использования ⚙️
public class VirtualThreadsExample {
public static void main(String[] args) {
try (var executor = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
for (int i = 0; i < 10; i++) {
executor.submit(() -> {
System.out.println(Thread.currentThread());
});
}
}
}
}

👩‍💻
@javaquiz
Post #2094 1.46K
Метод ProcessHandle.onExit() предоставляет возможность следить за завершением внешнего процесса в асинхронном режиме. Это удобно для управления запущенными процессами и выполнения действий после их окончания.

👩‍💻
@javaquiz
Post #2092 1.33K
⚙️ Метод Thread.onSpinWait() информирует процессор о том, что поток находится в ожидании, не выполняя при этом никакой полезной работы. Это способствует повышению производительности в многопоточных приложениях, снижая нагрузку на процессор во время активного ожидания.

👩‍💻
@javaquiz
  • 👍 2
Post #2089 1.36K
Метод StackWalker.walk() дает возможность получить информацию о текущем стеке вызовов в режиме реального времени, а также производить его фильтрацию и анализ. Это удобно для ведения логов, отладки и мониторинга работы кода.

👩‍💻
@javaquiz
Post #2088 1.35K
JarFile — это класс в Java, предназначенный для доступа к содержимому JAR-файла. JAR-файл (Java ARchive) представляет собой архивный формат, который позволяет объединять несколько файлов Java (.class) и другие ресурсы, такие как изображения, звуковые файлы и текстовые документы, в один файл.

Чтобы создать объект JarFile, нужно использовать его конструктор, который принимает путь к JAR-файлу в качестве аргумента.

👩‍💻
@javaquiz
  • 👍 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →