#вопросы_с_собеседований
Что такое ViewResolver в Spring?
Реализации ViewResolver используются для разрешения страниц просмотра по имени. Мы настраиваем его в файле конфигурации bean-компонента spring. Пример на картинке.
InternalResourceViewResolver — это одна из реализаций интерфейса ViewResolver, и мы предоставляем каталог страниц просмотра и местоположение через свойства компонента. Таким образом, если метод обработчика контроллера возвращает «home», view resolver будет использовать страницу представления, расположенную по адресу /WEB-INF/views/home.jsp.
Что такое 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/
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.
https://habr.com/ru/post/568966/
Хабр
Как сделать ссылки на методы дружелюбными для отладки
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше...
#вопросы_с_собеседований
Что имеется в виду под Collections в Java?
Collection — это фреймворк, который создан для сохранения и манипуляции объектами.
Используется для выполнения следующих операций:
☕️ поиск;
☕️ сортировка;
☕️ манипуляция;
☕️ добавление;
☕️ удаление.
Все классы и интерфейсы для Collection фреймворка находятся в java.util пакете.
Что имеется в виду под Collections в Java?
Collection — это фреймворк, который создан для сохранения и манипуляции объектами.
Используется для выполнения следующих операций:
☕️ поиск;
☕️ сортировка;
☕️ манипуляция;
☕️ добавление;
☕️ удаление.
Все классы и интерфейсы для Collection фреймворка находятся в java.util пакете.
Модификатор volatile
В Java модификатор volatile используется, чтобы позволить знать JVM, что поток доступа к переменной всегда должен объединять свою собственную копию переменной с главной копией в памяти.
Доступ к volatile переменной синхронизирует все кэшированные скопированные переменные в оперативной памяти. Ссылка на объект volatile может быть null.
Как правило, run() вызывается в одном потоке, а stop() вызывается из другого потока. Если в строке 1 используется кэшированное значение active, то цикл не может остановиться, пока вы не установите active = false в строке 2.
В 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
Недавно мы провели опрос: «📈Как изменилась жизнь русскоязычных айтишников за последние полгода», и в дополнение решили провести вебинар на актуальную для вас тему.
В программе:
🔹Где востребованы IT-специалисты из РФ: ТОП-10 стран;
🔹Какие языки, стеки и IT-специалисты востребованы в этих странах. Аналитика по навыкам;
🔹Массовые увольнения в корпорациях-гигантах: как искать работу за рубежом;
🔹Медианная зарплата программиста в каждой стране после уплаты налогов. Плюсы и минусы жизни в каждой стране;
🔹ChatGPT, ИИ и будущее программирования: какая версия GPT заменит программиста.
⏰ Дата: 16 февраля в 18:00 по МСК
Запись на вебинар, подробнее о спикерах, программе и т.д читайте по ссылке👉 https://proglib.io/w/27f6d59d
Асинхронность в Java
Асинхронное программирование — обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения.
https://nuancesprog.ru/p/13235/
Асинхронное программирование — обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения.
https://nuancesprog.ru/p/13235/
NOP::Nuances of programming
Асинхронность в Java
Асинхронное программирование — обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения.
Как стать Java разработчиком в 35+
Всем привет! Хочу написать свою первую статью о моём пути из менеджера по продажам / руководителя департамента одного из крупных банков / индивидуального предпринимателя в разработчики, который длился без немногого 2 года. Я постараюсь предоставить некоторые советы и рекомендации тем, кто в начале или середине пути в освоении разработки. Искренне надеюсь, что эта статья будет полезна тем, кто сейчас изучает Java или только планирует заняться ее изучением.
https://habr.com/ru/post/568310/
Всем привет! Хочу написать свою первую статью о моём пути из менеджера по продажам / руководителя департамента одного из крупных банков / индивидуального предпринимателя в разработчики, который длился без немногого 2 года. Я постараюсь предоставить некоторые советы и рекомендации тем, кто в начале или середине пути в освоении разработки. Искренне надеюсь, что эта статья будет полезна тем, кто сейчас изучает Java или только планирует заняться ее изучением.
https://habr.com/ru/post/568310/
Хабр
Как стать Java разработчиком в 35+
Всем привет! Хочу написать свою первую статью о моём пути из менеджера по продажам / руководителя департамента одного из крупных банков / индивидуального предпринимателя в разработчики, который...
#вопросы_с_собеседований
Какой класс появился в 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.
Какой класс появился в 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()).
Ответ на картинке.
Напишите минимальный неблокирующий ArrayList (всего четыре метода — add(), get(), remove(), size()).
Ответ на картинке.
Клонирование массивов
Когда вы клонируете одномерный массив, такой как Object[], выполняется «глубокая копия» с новым массивом, содержащим копии элементов исходного массива, а не ссылки.
Подробнее с методом clone() можно ознакомиться здесь.
Когда вы клонируете одномерный массив, такой как Object[], выполняется «глубокая копия» с новым массивом, содержащим копии элементов исходного массива, а не ссылки.
Подробнее с методом clone() можно ознакомиться здесь.
В этом видео рассказывается, когда и почему следует применять 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.
Какова важность файла web.xml в Spring MVC?
web.xml также известен как дескриптор развертывания, который содержит определения сервлетов и их сопоставлений, фильтров и прослушивателей жизненного цикла. Он также используется для настройки ContextLoaderListener. Всякий раз, когда приложение развертывается, экземпляр ContextLoaderListener создается контейнером сервлетов, что приводит к загрузке WebApplicationContext.
Spring Boot. Настройка профилирования времени выполнения.
https://habr.com/ru/company/alfastrah/blog/717114/
https://habr.com/ru/company/alfastrah/blog/717114/
Хабр
Spring Boot. Настройка профилирования времени выполнения
В процессе работы над одной из задач возникла необходимость промониторить время исполнения отдельных участков кода одного из микросервисов для того, чтобы отловить узкие места и попытаться эту...
#вопросы_с_собеседований
Можно ли определить класс внутри JSP страницы?
Определить класс внутри
Можно ли определить класс внутри JSP страницы?
Определить класс внутри
JSP
страницы можно, но это считается плохой практикой:<%!
private static class ExampleOne {
//...
}
%>
<%
private class ExampleTwo {
//...
}
%>
☕️ Запуск потоков в Java
В этой статье мы разберем различные способы запуска потоков. Описав задачу, мы выполним ее в многопоточной среде при помощи класса Thread и сравним с продвинутыми способами работы создания и запуска потоков.
https://www.jetbulb.com/posts/3
В этой статье мы разберем различные способы запуска потоков. Описав задачу, мы выполним ее в многопоточной среде при помощи класса Thread и сравним с продвинутыми способами работы создания и запуска потоков.
https://www.jetbulb.com/posts/3
#вопросы_с_собеседований
Можно ли объявить метод абстрактным и статическим одновременно?
Нет. В таком случае компилятор выдаст ошибку:
Можно ли объявить метод абстрактным и статическим одновременно?
Нет. В таком случае компилятор выдаст ошибку:
"Illegal combination of modifiers: ‘abstract’ and ‘static’"
. Модификатор abstract
говорит, что метод будет реализован в другом классе, а static
наоборот указывает, что этот метод будет доступен по имени класса.SOLID на практике в автоматизации тестирования
Как на практике реализовать все принципы и упростить разработку тестирования BDD?
https://habr.com/ru/post/681936/
Как на практике реализовать все принципы и упростить разработку тестирования BDD?
https://habr.com/ru/post/681936/
Хабр
SOLID на практике в автоматизации тестирования
Как на практике реализовать все принципы и упростить разработку тестирования BDD ? Для чего нужны принципы SOLID При создании программных систем использование принципов SOLID способствует созданию...
#вопросы_с_собеседований
Что такое «статический класс»?
Это вложенный класс, объявленный с использованием ключевого слова
Что такое «статический класс»?
Это вложенный класс, объявленный с использованием ключевого слова
static
. К классам верхнего уровня модификатор static
неприменим.