Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
#вопросы_с_собеседований
Что такое ViewResolver в Spring?

Реализации ViewResolver используются для разрешения страниц просмотра по имени. Мы настраиваем его в файле конфигурации bean-компонента spring. Пример на картинке.

InternalResourceViewResolver — это одна из реализаций интерфейса ViewResolver, и мы предоставляем каталог страниц просмотра и местоположение через свойства компонента. Таким образом, если метод обработчика контроллера возвращает «home», view resolver будет использовать страницу представления, расположенную по адресу /WEB-INF/views/home.jsp.
Как сделать ссылки на методы дружелюбными для отладки

В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.

https://habr.com/ru/post/568966/
#вопросы_с_собеседований
Что имеется в виду под Collections в Java?

Collection — это фреймворк, который создан для сохранения и манипуляции объектами.

Используется для выполнения следующих операций:
☕️ поиск;
☕️ сортировка;
☕️ манипуляция;
☕️ добавление;
☕️ удаление.

Все классы и интерфейсы для Collection фреймворка находятся в java.util пакете.
Модификатор volatile

В Java модификатор volatile используется, чтобы позволить знать JVM, что поток доступа к переменной всегда должен объединять свою собственную копию переменной с главной копией в памяти.

Доступ к volatile переменной синхронизирует все кэшированные скопированные переменные в оперативной памяти. Ссылка на объект volatile может быть null.

Как правило, run() вызывается в одном потоке, а stop() вызывается из другого потока. Если в строке 1 используется кэшированное значение active, то цикл не может остановиться, пока вы не установите active = false в строке 2.
💡УЖЕ ПОСЛЕЗАВТРА состоится бесплатный вебинар: «Эволюция или деградация: что будет с рынком IT и разработчиками в 2023 году»

Недавно мы провели опрос: «📈Как изменилась жизнь русскоязычных айтишников за последние полгода», и в дополнение решили провести вебинар на актуальную для вас тему.

В программе:

🔹Где востребованы IT-специалисты из РФ: ТОП-10 стран;
🔹Какие языки, стеки и IT-специалисты востребованы в этих странах. Аналитика по навыкам;
🔹Массовые увольнения в корпорациях-гигантах: как искать работу за рубежом;
🔹Медианная зарплата программиста в каждой стране после уплаты налогов. Плюсы и минусы жизни в каждой стране;
🔹ChatGPT, ИИ и будущее программирования: какая версия GPT заменит программиста.

Дата: 16 февраля в 18:00 по МСК

Запись на вебинар, подробнее о спикерах, программе и т.д читайте по ссылке👉 https://proglib.io/w/27f6d59d
Асинхронность в Java

Асинхронное
программирование  —  обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения.

https://nuancesprog.ru/p/13235/
Как стать Java разработчиком в 35+

Всем привет! Хочу написать свою первую статью о моём пути из менеджера по продажам / руководителя департамента одного из крупных банков / индивидуального предпринимателя в разработчики, который длился без немногого 2 года. Я постараюсь предоставить некоторые советы и рекомендации тем, кто в начале или середине пути в освоении разработки. Искренне надеюсь, что эта статья будет полезна тем, кто сейчас изучает Java или только планирует заняться ее изучением.

https://habr.com/ru/post/568310/
#вопросы_с_собеседований
Какой класс появился в Java 8 для кодирования/декодирования данных?

Base64 - потокобезопасный класс, который реализует кодировщик и декодировщик данных, используя схему кодирования base64 согласно RFC 4648 и RFC 2045.

Base64 содержит 6 основных методов:

getEncoder()/getDecoder() - возвращает кодировщик/декодировщик base64, соответствующий стандарту RFC 4648;
getUrlEncoder()/getUrlDecoder() - возвращает URL-safe кодировщик/декодировщик base64, соответствующий стандарту RFC 4648;
getMimeEncoder()/getMimeDecoder() - возвращает MIME кодировщик/декодировщик, соответствующий стандарту RFC 2045.
#вопросы_с_собеседований
Напишите минимальный неблокирующий ArrayList (всего четыре метода — add(), get(), remove(), size()).

Ответ на картинке.
Клонирование массивов

Когда вы клонируете одномерный массив, такой как Object[], выполняется «глубокая копия» с новым массивом, содержащим копии элементов исходного массива, а не ссылки.

Подробнее с методом clone() можно ознакомиться здесь.
👩‍💻Java. Для чего нужен Optional?

В этом видео рассказывается, когда и почему следует применять Optional при разработке на языке программирования Java.

https://youtu.be/rrQ4st2zgY8
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседований
Какова важность файла web.xml в Spring MVC?

web.xml также известен как дескриптор развертывания, который содержит определения сервлетов и их сопоставлений, фильтров и прослушивателей жизненного цикла. Он также используется для настройки ContextLoaderListener. Всякий раз, когда приложение развертывается, экземпляр ContextLoaderListener создается контейнером сервлетов, что приводит к загрузке WebApplicationContext.
#вопросы_с_собеседований
Можно ли определить класс внутри JSP страницы?

Определить класс внутри JSP страницы можно, но это считается плохой практикой:

<%!
private static class ExampleOne {
//...
}
%>

<%
private class ExampleTwo {
//...
}
%>
☕️ Запуск потоков в Java

В этой статье мы разберем различные способы запуска потоков. Описав задачу, мы выполним ее в многопоточной среде при помощи класса Thread и сравним с продвинутыми способами работы создания и запуска потоков.

https://www.jetbulb.com/posts/3
#вопросы_с_собеседований
Можно ли объявить метод абстрактным и статическим одновременно?

Нет. В таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.
#вопросы_с_собеседований
Что такое «статический класс»?

Это вложенный класс, объявленный с использованием ключевого слова static. К классам верхнего уровня модификатор static неприменим.