Java задачи с собеседований
6.12K subscribers
720 photos
7 videos
19 files
269 links
Задачи, тесты и теоретические вопросы по JAVA.

Репозиторий: https://github.com/proghub-official/java-interview
Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
🚫 Антипаттерн недели: Использование String вместо StringBuilder при конкатенации в цикле

В Java строки (String) неизменяемы. При каждой конкатенации через + создаётся новый объект, что приводит к избыточным затратам памяти и снижает производительность, особенно в циклах.

✔️ Используйте StringBuilder, который изменяем и работает быстрее при частых операциях с текстом.

👩‍💻

@javaquiz
👍7👎1
⚙️ Files.mismatch()

Метод Files.mismatch(), добавленный в Java 12, позволяет сравнить два файла и найти позицию первого несовпадающего байта. Если файлы идентичны, метод возвращает -1. Это полезно для проверки целостности данных или сравнения файлов.

👩‍💻

@javaquiz
👍2🔥2
⚙️ LockSupport.park()

Метод LockSupport.park() позволяет приостановить выполнение потока без использования synchronized или wait(). Это полезно для низкоуровневой синхронизации потоков.

👩‍💻

@javaquiz
👍2
👩‍💻 Java в Kubernetes за 40 минут: как задеплоить приложение в Minikube

Приглашаем на открытый урок.

🗓 27 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса
«Java Developer. Advanced».

Minikube — личный Kubernetes для тестов. Научитесь деплоить Java-приложения — база для DevOps, CI/CD и продакшна.

Что будет на вебинаре:

✔️ Подготовка Java-приложения к деплою (JAR → Docker image).
✔️Установка Minikube и настройка локального кластера.
✔️Написание манифестов: Deployment, Service, ConfigMap.
✔️Запуск приложения и проверка работоспособности.

В результате вебинара вы:
✔️ Сможете самостоятельно задеплоить Java-приложение в Minikube, написать манифесты и лучше понять, как работает Kubernetes «под капотом».

Кому будет интересно:
Java-разработчикам, начинающим осваивать Kubernetes и DevOps-подходы, а также инженерам, выстраивающим локальные CI/CD практики.

🔗 Ссылка на регистрацию: https://clck.ru/3PqCpN

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ MethodHandles.arrayElementVarHandle()

Метод MethodHandles.arrayElementVarHandle() создаёт VarHandle для работы с элементами массива, позволяя выполнять атомарные операции без блокировки.

👩‍💻

@javaquiz
⚙️ StackWalker.walk()

Метод StackWalker.walk() позволяет динамически получать информацию о текущем стеке вызовов, фильтровать его и анализировать. Это полезно для логирования, отладки и мониторинга исполнения кода.

👩‍💻

@javaquiz
⚙️ java.util.Timer()

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

👩‍💻

@javaquiz
👍1
Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Нажмите на ссылку: Вход (https://t.me/telega_adv_bot/catalog_ru?startapp=n_java_per_month)
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.

@javaquiz
Вопрос на собеседовании

Что такое 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
👍4
🔥 Разбираемся с AOP в Spring

📅 29 октября в 20:00
Если ты работаешь со Spring и хочешь понять, как всё устроено под капотом — этот вебинар для тебя.

AOP (Aspect-Oriented Programming) — мощный инструмент, который помогает упростить код, вынести кросс-функциональные задачи (логирование, безопасность, валидацию) и лучше понять механику фреймворка.

На вебинаре ты узнаешь:
— зачем вообще нужен AOP в Spring;
— что такое аспект, pointcut, advice, join point и прокси;
— как быстро подключить AOP и написать свой первый аспект — например, для логирования действий.

Открытый урок проходит в преддверие старта курса «Разработчик на Spring Framework». Все участники получат скидку на обучение.

Регистрируйся, если хочешь прокачать понимание Spring и писать более чистый и гибкий код:
https://clck.ru/3PzGHm

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🚫 Антипаттерн недели: Использование null вместо Optional

В Java часто используют null для обозначения отсутствия значения, но это может привести к NullPointerException и усложнить код.

✔️ Используйте Optional, чтобы избежать null и сделать код безопаснее.

🗣 Почему это важно?

🟢Optional явно показывает, что значение может отсутствовать.
🟢Избегает null-проверок и улучшает читаемость кода.
🟢Позволяет удобно работать с цепочками вызовов (map(), orElse()).

👩‍💻

@javaquiz
👎3
⚙️ Locale.getDefault()

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

👩‍💻

@javaquiz
👍2
⚡️ Запускаем крупный розыгрыш призов, где можно выиграть iPhone 17, игровые наушники, клавиатуру и мышь!

Без лишних слов, условия:

1. Подписка на:
— бизнестрендс (https://t.me/+IRVPiuoDaOM3ZGNi)
— Технотренды (https://t.me/+hk1Cfl3PL2s5M2Vi)
— Блумберг (https://t.me/+c1DSyvyLw2MyMWQy)
2. Нажать кнопку «Участвовать» снизу

Итоги будут опубликованы 15 ноября в 18:00 на наших каналах, желаем удачи!

@javaquiz
⚙️ Thread.getState()

Thread.getState() позволяет получить текущее состояние потока. Это полезно при отладке многопоточных программ, чтобы отслеживать, выполняется ли поток, заблокирован или завершён.

👩‍💻

@javaquiz
👍2
⚙️ ProcessHandle.isAlive()

ProcessHandle.isAlive() позволяет проверить, запущен ли процесс в данный момент. Это полезно при мониторинге фоновых процессов и управлении системными ресурсами.

👩‍💻

@javaquiz
⚙️ JLine TerminalBuilder.build (TerminalBuilder.build)()

TerminalBuilder.build() из библиотеки JLine позволяет создавать интерактивные терминалы с поддержкой ANSI-цветов, автодополнения и управления вводом. Это полезно для создания CLI-приложений с удобным интерфейсом.

🔗 Документация (https://jline.github.io/)

👩‍💻

@javaquiz
🔍Тестовое собеседование с ТехЛидом из МТС уже завтра

5 ноября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Илья Аров, старший разработчик в МТС, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Илья будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Илье

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ AnsiConsole.out.println()

AnsiConsole.out.println() из библиотеки Jansi позволяет выводить цветной текст в консоль, упрощая создание стилизованных CLI-приложений с поддержкой ANSI-escape последовательностей.

🔗 Документация (https://fusesource.github.io/jansi)

👩‍💻

@javaquiz