#Вопросы_с_собеседования
❓Может ли конструктор класса вернуть любое значение?
Нет, у конструктора нет возвращаемого типа, поэтому он не может возвращать любое значение.
❓Может ли конструктор класса вернуть любое значение?
👍22❤5😱2😢1
Как добавить локализацию в приложениях Spring MVC?
Spring обеспечивает отличную поддержку локализации или i18n через пакеты ресурсов. Основные шаги, необходимые для локализации нашего приложения:
Создание пакетов ресурсов сообщений для разных локалей, таких как messages_en.properties, messages_fr.properties и т. д.
Определение bean-компонента messageSource в файле конфигурации bean-компонента Spring типа ResourceBundleMessageSource или ReloadableResourceBundleMessageSource.
Для изменения поддержки локали определите bean-компонент localeResolver типа CookieLocaleResolver и настройте перехватчик LocaleChangeInterceptor. Пример конфигурации показан на картинке.
Используйте элемент spring:message на страницах просмотра с ключевыми именами, DispatcherServlet выбирает соответствующее значение и отображает страницу в соответствующей локали и возвращает в качестве ответа.
Spring обеспечивает отличную поддержку локализации или i18n через пакеты ресурсов. Основные шаги, необходимые для локализации нашего приложения:
Создание пакетов ресурсов сообщений для разных локалей, таких как messages_en.properties, messages_fr.properties и т. д.
Определение bean-компонента messageSource в файле конфигурации bean-компонента Spring типа ResourceBundleMessageSource или ReloadableResourceBundleMessageSource.
Для изменения поддержки локали определите bean-компонент localeResolver типа CookieLocaleResolver и настройте перехватчик LocaleChangeInterceptor. Пример конфигурации показан на картинке.
Используйте элемент spring:message на страницах просмотра с ключевыми именами, DispatcherServlet выбирает соответствующее значение и отображает страницу в соответствующей локали и возвращает в качестве ответа.
👍17❤2
Ключевое слово abstract в Java
abstract - это модификатор, применимый для классов, методов, но не для переменных. Он используется для достижения абстракции, которая является одним из столпов объектно-ориентированного программирования. Рассмотрим варианты применения abstract:
1. Класс, имеющий частичную реализацию (т.е. не все методы, присутствующие в классе, определены).
2. Иногда требуется объявление нереализованного метода в суперклассе. Этого можно добиться, указав модификатор abstract.
abstract - это модификатор, применимый для классов, методов, но не для переменных. Он используется для достижения абстракции, которая является одним из столпов объектно-ориентированного программирования. Рассмотрим варианты применения abstract:
1. Класс, имеющий частичную реализацию (т.е. не все методы, присутствующие в классе, определены).
2. Иногда требуется объявление нереализованного метода в суперклассе. Этого можно добиться, указав модификатор abstract.
👍20❤2
#Вопросы_с_собеседования
❓Расположите в виде иерархии следующие интерфейсы: List, Set, Map, SortedSet, SortedMap, Collection, Iterable, Iterator, NavigableSet, NavigableMap
Ответ на картинке.
❓Расположите в виде иерархии следующие интерфейсы: List, Set, Map, SortedSet, SortedMap, Collection, Iterable, Iterator, NavigableSet, NavigableMap
Ответ на картинке.
👍30❤3
#Вопросы_с_собеседования
❓Что такое double checked locking Singleton?
double checked locking Singleton - это один из способов создания потокобезопасного класса реализующего шаблон Одиночка. Данный метод пытается оптимизировать производительность, блокируясь только случае, когда экземпляр одиночки создаётся впервые.
Следует заметить, что требование volatile обязательно. Проблема Double Checked Lock заключается в модели памяти Java, точнее в порядке создания объектов, когда возможна ситуация, при которой другой поток может получить и начать использовать (на основании условия, что указатель не нулевой) не полностью сконструированный объект. Хотя эта проблема была частично решена в JDK 1.5, однако рекомендация использовать volatile для Double Cheсked Lock остаётся в силе.
❓Что такое double checked locking Singleton?
double checked locking Singleton - это один из способов создания потокобезопасного класса реализующего шаблон Одиночка. Данный метод пытается оптимизировать производительность, блокируясь только случае, когда экземпляр одиночки создаётся впервые.
Следует заметить, что требование volatile обязательно. Проблема Double Checked Lock заключается в модели памяти Java, точнее в порядке создания объектов, когда возможна ситуация, при которой другой поток может получить и начать использовать (на основании условия, что указатель не нулевой) не полностью сконструированный объект. Хотя эта проблема была частично решена в JDK 1.5, однако рекомендация использовать volatile для Double Cheсked Lock остаётся в силе.
👍15❤1🤔1
#Вопросы_с_собеседования
❓При помощи чего формируются запросы к базе данных?
Для выполнения запросов к базе данных в Java используются три интерфейса:
☕️
☕️
☕️
Объекты-носители интерфейсов создаются при помощи методов объекта java.sql.Connection:
☕️
☕️
☕️
❓При помощи чего формируются запросы к базе данных?
Для выполнения запросов к базе данных в Java используются три интерфейса:
☕️
java.sql.Statement - для операторов SQL без параметров;☕️
java.sql.PreparedStatement - для операторов SQL с параметрами и часто выполняемых операторов;☕️
java.sql.CallableStatement - для исполнения хранимых в базе процедур.Объекты-носители интерфейсов создаются при помощи методов объекта java.sql.Connection:
☕️
java.sql.createStatement() возвращает объект Statement;☕️
java.sql.prepareStatement() возвращает объект PreparedStatement;☕️
java.sql.prepareCall() возвращает объект CallableStatement;👍14❤1
Collections.min/max
Удивительно, насколько часто можно встретить написанный вручную код, который находит максимальный или минимальный элемент чего-то по какому-нибудь критерию.
Казалось бы, такая тривиальная задача должна быть давно решена. На самом деле она и так давно решена: есть методы Collections.min и Collections.max. Раньше было не очень удобно писать компараторы, но в Java-8 всё стало легче.
К примеру, вам нужно найти ключ в Map, соответствующий максимальному значению. Воспользуйтесь кодом с картинки.
Удивительно, насколько часто можно встретить написанный вручную код, который находит максимальный или минимальный элемент чего-то по какому-нибудь критерию.
Казалось бы, такая тривиальная задача должна быть давно решена. На самом деле она и так давно решена: есть методы Collections.min и Collections.max. Раньше было не очень удобно писать компараторы, но в Java-8 всё стало легче.
К примеру, вам нужно найти ключ в Map, соответствующий максимальному значению. Воспользуйтесь кодом с картинки.
👍22❤1
#вопросы_с_собеседований
Какие промежуточные методы работы со стримами вы знаете?
filter() отфильтровывает записи, возвращая только записи, соответствующие условию;
skip() позволяет пропустить определённое количество элементов в начале;
distinct() возвращает стрим без дубликатов (для метода equals());
map() преобразует каждый элемент;
peek() возвращает тот же стрим, применяя к каждому элементу функцию;
limit() позволяет ограничить выборку определенным количеством первых элементов;
sorted() позволяет сортировать значения либо в натуральном порядке, либо задавая Comparator;
mapToInt(), mapToDouble(), mapToLong() - аналоги map() возвращающие стрим числовых примитивов;
flatMap(), flatMapToInt(), flatMapToDouble(), flatMapToLong() - похожи на map(), но могут создавать из одного элемента несколько.
Для числовых стримов дополнительно доступен метод mapToObj(), который преобразует числовой стрим обратно в объектный.
Какие промежуточные методы работы со стримами вы знаете?
filter() отфильтровывает записи, возвращая только записи, соответствующие условию;
skip() позволяет пропустить определённое количество элементов в начале;
distinct() возвращает стрим без дубликатов (для метода equals());
map() преобразует каждый элемент;
peek() возвращает тот же стрим, применяя к каждому элементу функцию;
limit() позволяет ограничить выборку определенным количеством первых элементов;
sorted() позволяет сортировать значения либо в натуральном порядке, либо задавая Comparator;
mapToInt(), mapToDouble(), mapToLong() - аналоги map() возвращающие стрим числовых примитивов;
flatMap(), flatMapToInt(), flatMapToDouble(), flatMapToLong() - похожи на map(), но могут создавать из одного элемента несколько.
Для числовых стримов дополнительно доступен метод mapToObj(), который преобразует числовой стрим обратно в объектный.
❤14👍6
Что за зверь "Matcher"?
Класс Java Matcher (java.util.regex.Matcher) создан для поиска некоторого множества вхождений регулярного выражения в одном тексте и поиска по одному шаблону в разных текстах. Класс Java Matcher имеет много полезных методов.
Например:
• boolean matches(): вернет значение true при совпадении строки с шаблоном.
• boolean find(): вернет значение true при обнаружении подстроки, совпадающей с шаблоном, и перейдет к ней.
• int start(): вернет значение индекса соответствия.
• int end(): вернет значение индекса последующего соответствия.
• String replaceAll(String str): вернет значение измененной строки подстрокой str.
Другие методы Matcher можно найти в официальной документации.
Рассмотрите простой пример работы с Pattern и Matcher.
Класс Java Matcher (java.util.regex.Matcher) создан для поиска некоторого множества вхождений регулярного выражения в одном тексте и поиска по одному шаблону в разных текстах. Класс Java Matcher имеет много полезных методов.
Например:
• boolean matches(): вернет значение true при совпадении строки с шаблоном.
• boolean find(): вернет значение true при обнаружении подстроки, совпадающей с шаблоном, и перейдет к ней.
• int start(): вернет значение индекса соответствия.
• int end(): вернет значение индекса последующего соответствия.
• String replaceAll(String str): вернет значение измененной строки подстрокой str.
Другие методы Matcher можно найти в официальной документации.
Рассмотрите простой пример работы с Pattern и Matcher.
❤10👍4
👍43🤔6🔥5❤1
#Вопросы_с_собеседования
❓В чем разница между interrupted() и isInterrupted()?
Механизм прерывания работы потока в Java реализован с использованием внутреннего флага, известного как статус прерывания. Прерывание потока вызовом Thread.interrupt() устанавливает этот флаг. Методы Thread.interrupted() и isInterrupted() позволяют проверить, является ли поток прерванным.
Когда прерванный поток проверяет статус прерывания, вызывая статический метод Thread.interrupted(), статус прерывания сбрасывается.
Нестатический метод isInterrupted() используется одним потоком для проверки статуса прерывания у другого потока, не изменяя флаг прерывания.
❓В чем разница между interrupted() и isInterrupted()?
Механизм прерывания работы потока в Java реализован с использованием внутреннего флага, известного как статус прерывания. Прерывание потока вызовом Thread.interrupt() устанавливает этот флаг. Методы Thread.interrupted() и isInterrupted() позволяют проверить, является ли поток прерванным.
Когда прерванный поток проверяет статус прерывания, вызывая статический метод Thread.interrupted(), статус прерывания сбрасывается.
Нестатический метод isInterrupted() используется одним потоком для проверки статуса прерывания у другого потока, не изменяя флаг прерывания.
👍11❤1
#Вопросы_с_собеседования
❓Напишите пример перехвата и обработки исключения в блоке try — catch метода
Ответ на картинке.
❓Напишите пример перехвата и обработки исключения в блоке try — catch метода
Ответ на картинке.
👍14🤔4❤2
#Вопросы_с_собеседования
❓Сколько различных типов конструкторов существует в Java?
В Java есть 2 типа конструкторов:
1) Конструктор по умолчанию — не принимает никаких параметров.
2) Параметризованный конструктор — принимает как минимум один параметр.
❓Сколько различных типов конструкторов существует в Java?
1) Конструктор по умолчанию — не принимает никаких параметров.
2) Параметризованный конструктор — принимает как минимум один параметр.
👍33
Что будет выведено на экран?
Anonymous Quiz
23%
A got caught B got caught
25%
B got caught
32%
Compiler Error
20%
A got caught
🤔19👍16
#Вопросы_с_собеседования
❓Перечислите все конструкции, к которым применим модификатор static.
☕️ поля;
☕️ методы;
☕️ вложенные классы;
☕️ члены секции import;
☕️ статический блок инициализации.
❓Перечислите все конструкции, к которым применим модификатор static.
☕️ поля;
☕️ методы;
☕️ вложенные классы;
☕️ члены секции import;
☕️ статический блок инициализации.
👍15❤1🤔1