Библиотека собеса по Java | вопросы с собеседований
رفتن به کانال در Telegram
Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: clc.to/3wECtA Для обратной связи: @proglibrary_feeedback_bot
نمایش بیشتر6 466
مشترکین
+324 ساعت
-37 روز
-1030 روز
آرشیو پست ها
В чём заключается различие между методами submit() и execute() у пула потоков?
Оба метода являются способами подачи задачи в пул потоков, но между ними есть небольшая разница.
execute(Runnable command) определён в интерфейсе Executor и выполняет поданную задачу и ничего не возвращает.
submit() — перегруженный метод, определённый в интерфейсе ExecutorService. Способен принимать задачи типов Runnable и Callable и возвращать объект Future, который можно использовать для контроля и управления процессом выполнения, получения его результата.
Если кодите на Java больше 4 лет, залетайте на мероприятие Java от T-Банка, так проще познакомиться с командой. Вот что вас ждет:
17 июля — встречи, доклады и открытый микрофон от экспертов. Узнаете, как устроена Java-разработка в Т-Банке.
27 и 28 июля — Weekend offer. Сможете пройти собеседование и познакомиться с командой на неделе. Если все понравится — оффер ваш.
Узнайте больше и оставьте заявку на Weekend offer до 24 июля
erid:2Vtzquwn1pc
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Оптимизация сборщика мусора с помощью -XX:+UseG1GC
Java предоставляет множество возможностей для оптимизации производительности приложений.
✔️ Одной из таких возможностей является использование современного сборщика мусора G1 (Garbage First), который улучшает работу приложений с большим объемом данных и снижает задержки.
➡️ Чтобы включить использование G1GC, необходимо добавить флаг -XX:+UseG1GC при запуске Java-приложения:
java -XX:+UseG1GC G1GCExample
Метод compareTo()
В Java метод compareTo() получает значение 0, если аргумент является строкой лексически равной данной строке; значение меньше 0, если аргумент является строкой лексически большей, чем сравниваемая строка; и значение больше 0, если аргумент является строкой лексически меньшей этой строки.
Что такое ViewResolver в Spring?
Реализации ViewResolver используются для разрешения страниц просмотра по имени. Мы настраиваем его в файле конфигурации bean-компонента spring. Пример на картинке.
InternalResourceViewResolver — это одна из реализаций интерфейса ViewResolver, и мы предоставляем каталог страниц просмотра и местоположение через свойства компонента. Таким образом, если метод обработчика контроллера возвращает «home», view resolver будет использовать страницу представления, расположенную по адресу /WEB-INF/views/home.jsp.
Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?
Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals() нужно обязательно переопределять и метод hashCode().
Как конвертировать массив в список?
Используется метод Arrays.asList(), который преобразует массив в список.
В чем разница между struct и class?
Ответ: Практически ни в чем. В struct модификаторы доступа по умолчанию public, в class private. Также отличается и наследование по умолчанию, у struct — public, у class — private.
🎓 Продвинутый SQL: секреты профессионалов
Рассказываем о сложных стратегиях оптимизации запросов, продвинутых типах соединений и тонкостях использования SELECT.
Читать статью
#туториал
Локальные переменные в лямбда-выражениях
Java позволяет использовать локальные переменные внутри лямбда-выражений, но с одним важным ограничением: переменные должны быть эффективно финальными (effectively final).
Это означает, что после их инициализации переменные не могут быть изменены.
Использование локальных переменных в лямбда-выражениях может быть очень полезным для передачи дополнительных данных в лямбда-выражения
Оператор instanceof
Оператор java instanceof используется для проверки того, является ли объект экземпляром указанного типа (класса или подкласса или интерфейса). Во время выполнения результат оператора instanceof равен true, если значение выражения не равно null.
Это важное свойство операции instanceof, которое делает ее полезной для проверки приведения типов.
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»
🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/caded0eb
На вводной части вас ждут:
1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов
2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ
3. Практические задания после лекций
4. Ссылки на дополнительные материалы для самостоятельного изучения
⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/caded0eb
Объединение строк с помощью String.join
Часто возникает необходимость объединять несколько строк в одну, используя определенный разделитель.
До Java 8 это обычно делалось с помощью цикла и объекта StringBuilder. С появлением метода String.join, эта задача стала намного проще и лаконичнее.
Использование метода String.join значительно упрощает задачу объединения строк с разделителем, делая код более читаемым и сокращая количество кода, которое нужно написать и поддерживать.
🎭 Bytemask \\
Bytemask — плагин Gradle для Android, который маскирует секретные строки приложения в исходном коде, затрудняя их извлечение с помощью реверс-инжиниринга. Он шифрует строки во время компиляции с помощью ключа подписи приложения и расшифровывает во время выполнения.
Ссылка на Github
#полезное #библиотека
Работа с коллекциями с помощью Streams
Java Streams позволяют легко и эффективно работать с коллекциями данных, такими как списки, используя функциональный подход.
👀 Этот простой пример показывает, как с помощью Streams можно легко фильтровать и преобразовывать данные в коллекциях, делая код более лаконичным и понятным.
Узнаем разницу между 2 датами, представленными в виде строк
Для вычисления разницы между двумя датами, представленными в виде строк, можно использовать классы java.time.LocalDate и java.time.temporal.ChronoUnit из пакета java.time.
В этом примере мы используем метод LocalDate.parse() для преобразования строковых значений в объекты типа LocalDate. Затем мы используем метод ChronoUnit.between() для вычисления разницы между двумя датами в днях, месяцах и годах.
Обратите внимание, что вы должны использовать формат даты «yyyy-MM-dd» для парсинга строковых значений даты. Если ваши строки даты имеют другой формат, вам может потребоваться использовать другой метод для преобразования их в объекты LocalDate.
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Repost from Библиотека C/C++ разработчика | cpp, boost, qt
🏅 Как стать мидлом за 3 года: 12 советов джунам
Переход от статуса джуна к мидлу — важная, и пожалуй, самая сложная веха в карьере любого разработчика. Рассказываем об эффективных приемах и дополнительных навыках, которые помогут вам сократить этот извилистый путь
👉 Статья
Использовании Optional для избежания NullPointerException
В Java часто приходится сталкиваться с проблемой, когда метод возвращает null, что может привести к NullPointerException. Чтобы избежать таких ситуаций, можно использовать класс Optional.
👀 Рассмотрим пример, как использовать Optional для безопасного получения значения из метода, который может вернуть null.
В каких состояниях может пребывать поток?
Поток в Java может находиться в следующих состояниях:
— New (Новый): поток создан, но еще не запущен.
— Runnable (Готов к выполнению): поток запущен, но в данный момент не выполняется, а ожидает выделения процессорного времени.
— Running (Выполняется): поток выполняется в настоящий момент.
— Blocked (Заблокирован): поток заблокирован, ожидая завершения какого-либо события, например завершения операции ввода-вывода.
— Waiting (Ожидание): поток ожидает другого потока, например, ожидая сигнала notify от другого потока.
— Timed Waiting (Ожидание с таймаутом): то же, что Waiting, но с указанием таймаута.
— Terminated (Завершен): выполнение потока завершено, например, после завершения метода run().
