Java задачи с собеседований – Telegram
Java задачи с собеседований
6.09K subscribers
735 photos
7 videos
19 files
273 links
Задачи, тесты и теоретические вопросы по JAVA.

Репозиторий: https://github.com/proghub-official/java-interview
Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
⚙️ MethodHandles.lookup().findVirtual()

MethodHandles.lookup().findVirtual() позволяет динамически получать и вызывать методы классов без рефлексии, обеспечивая лучшую производительность и безопасность. Это полезно для метапрограммирования и динамических вызовов.

🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/MethodHandles.Lookup.html#findVirtual(java.lang.Class,java.lang.String,java.lang.invoke.MethodType))

👩‍💻

@javaquiz
👍1
⚙️ VarHandle.compareAndExchange()

VarHandle.compareAndExchange() позволяет атомарно обновлять значения переменной, только если текущее значение соответствует ожидаемому. Это полезно для реализации lock-free структур данных и многопоточной синхронизации.

🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#compareAndExchange(T,...))

👩‍💻

@javaquiz
⚙️ FileDenoscriptor.sync()

FileDenoscriptor.sync() в Java позволяет принудительно записать все несохранённые данные из буфера операционной системы на диск. Это полезно для обеспечения целостности данных в случае сбоя или отключения питания.

🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/FileDenoscriptor.html#sync())

👩‍💻

@javaquiz
⚙️ ProcessBuilder.redirectOutput()

ProcessBuilder.redirectOutput() позволяет перенаправлять стандартный вывод (stdout) запускаемого процесса в файл или в другой поток. Это полезно при работе с внешними процессами и логированием их вывода.

🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/ProcessBuilder.html#redirectOutput(java.io.File))

👩‍💻

@javaquiz
👍1
⚙️ Micronaut

Micronaut — это лёгкий фреймворк для микросервисов, который быстро стартует, потребляет мало памяти и поддерживает компиляцию в нативные образы через GraalVM.

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

👩‍💻

@javaquiz
⚙️ InetAddress.getByAddress()

InetAddress.getByAddress() позволяет создать IP-адрес вручную из массива байтов, без необходимости использования DNS-резолвера. Это полезно для работы с сетевыми протоколами и тестирования.

👩‍💻

@javaquiz
⚙️ Thread.getAllStackTraces()

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

👩‍💻

@javaquiz
👍1
👀 Мониторинг использования памяти с MemoryMXBean

В Java можно отслеживать текущее потребление памяти JVM с помощью MemoryMXBean. Это полезно для диагностики утечек памяти и анализа работы сборщика мусора.

✔️ Использование ManagementFactory.getMemoryMXBean() позволяет получить информацию о потреблении памяти в реальном времени.

👩‍💻

@javaquiz
👍1
⚙️ Thread.sleep(Duration)

Thread.sleep(Duration) (Java 9+) позволяет приостанавливать выполнение потока на заданное время с использованием Duration, что делает код более читаемым и удобным.

👩‍💻

@javaquiz
⚙️ Cleaner.register()

Cleaner.register() позволяет выполнять код очистки перед удалением объекта сборщиком мусора. Это полезно для освобождения нативных ресурсов без явного вызова close().

👩‍💻

@javaquiz
👍3
⚙️ LockSupport.parkNanos()

LockSupport.parkNanos() позволяет приостанавливать поток на заданное количество наносекунд, обеспечивая более точный контроль пауз по сравнению с Thread.sleep().

👩‍💻

@javaquiz
👍1
⚙️ Arrays.mismatch()

Arrays.mismatch() сравнивает два массива и возвращает индекс первого несовпадающего элемента. Это полезно для эффективного поиска различий между данными.

👩‍💻

@javaquiz
👍4
⚙️ ProcessHandle.descendants()

ProcessHandle.descendants() возвращает поток потомков (дочерних процессов) данного процесса. Это полезно для мониторинга и управления иерархией процессов, например, при запуске подпроцессов через ProcessBuilder.

👩‍💻

@javaquiz
🔥1
⚙️ Character.getType()

Character.getType() возвращает тип символа по его Unicode-категории, например, буква, цифра, пунктуация и т.д. Это полезно для фильтрации и анализа текста, особенно в мульти-язычных или валидационных системах.

👩‍💻

@javaquiz
👍2
⚙️ System.mapLibraryName()

System.mapLibraryName() преобразует логическое имя нативной библиотеки в платформозависимое. Это полезно при динамической загрузке .dll, .so или .dylib файлов в кроссплатформенных Java-приложениях.

👩‍💻

@javaquiz
⚙️ Class.getCanonicalName()

Class.getCanonicalName() возвращает полное каноническое имя класса, включая вложенность. Это полезно для логирования, сериализации, генерации кода и анализа структуры сложных приложений.

👩‍💻

@javaquiz
⚙️ Module.getPackages()

Module.getPackages() возвращает множество имён пакетов, принадлежащих модулю. Это полезно при динамическом анализе модульной структуры и рефлексии в Java 9+.

👩‍💻

@javaquiz
Представь, что тебя связали, кинули в багажник и увезли в ангар за городом

Похититель наклоняется к твоему уху и шепчет: "Или ты правильно отвечаешь на 3 вопроса, или пуля летит тебе прямиком в висок:"

Похититель наклоняется к твоему уху и шепчет: "Или ты правильно отвечаешь на 3 вопроса, или пуля летит тебе прямиком в висок:

🧷Почему @Transactional в Spring не работает, если вызвать метод внутри того же класса?
🧷 Почему Kafka с exactly-once семантикой в 3 раза медленнее обычной и когда можно на это забить?
🧷2 запроса одновременно читают баланс 1000₽, вычитают по 600₽ и сохраняют - что окажется в бд?

Ну как? Выживешь в такой ситуации?

А ведь именно так сейчас выглядит рынок найма - эти вопросы взяты с реальных собесов 😯

Рынок усложнился, и на вакансию джуна спрашивают как на синьора 3 года назад. Нужно реально шарить, и шарить глубоко, только на одних нейронках далеко не уедешь

Чтобы разобраться раз и навсегда со Spring, Kafka, Redis Паша Сорокин 18 декабря в 19:00 по МСК проведёт живой открытый урок для Java-разработчиков и тех, кто хочет им стать:

💚 За какие темы надо шарить, чтобы получить оффер на миддла
💚 В каком порядке и до какой глубины их изучать
💚 По каждой технологии (Spring Boot, HTTP, REST, Postgresql, Hibernate, микросервисы, Kafka, Redis) разберём как делать не надо и как делать надо

🟢 Ссылка на урок будет в закрытом канале урока

В этом же канале вас ждёт подарок - гайд "Roadmap из 11 шагов до ЗП в 200.000+"

P.S. Паша - ex Senior Dev в ВТБ с 6 годами коммерческого опыта, так что фигни не посоветует))
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
👩‍💻 Что такое: Scoped Values

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

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

В Java 25 Scoped Values стали стабильными. Разберемся, что это и для чего нужны.

Программа вебинара:

✔️ Что такое Scoped Values и зачем они нужны.
✔️ Как использовать в коде и когда это оправдано.
✔️Короткий пример на Java 25.

Вебинар будет полезен:
Java-разработчикам, переходящим на новые версии JDK и изучающим современные механизмы работы с данными в потоках.

В результате вебинара:
Поймете назначение Scoped Values и базовые сценарии применения, сможете написать минимальный пример в Java 25.

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

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