Какова структура веб-проекта?
src/main/java Исходники приложения/библиотекиsrc/main/resources Ресурсные файлы приложения/библиотекиsrc/main/filters Файлы сервлетных фильтровsrc/main/webapp Исходники веб-приложенияsrc/test/java Исходники тестовsrc/test/resources Ресурсные файлы тестовsrc/test/filters Тесты сервлетных фильтровsrc/it Интеграционные тестыsrc/assembly Описание сборкиsrc/site СайтLICENSE.txt Лицензия проектаNOTICE.txt Замечания и определения библиотек зависимостей.README.txt Описание проекта👍22❤4🔥1
#Вопросы_с_собеседования
Что такое «анонимные классы»? Где они применяются?
Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.
Анонимные классы имеют несколько ограничений:
• Их использование разрешено только в одном месте программы - месте его создания;
• Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
• Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.
Анонимные классы обычно применяются для:
• создания объекта функции (function object), например, реализация интерфейса
• создания объекта процесса (process object), такого как экземпляры классов
• в статическом методе генерации;
• инициализации открытого статического поля
Что такое «анонимные классы»? Где они применяются?
Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.
Анонимные классы имеют несколько ограничений:
• Их использование разрешено только в одном месте программы - месте его создания;
• Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
• Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.
Анонимные классы обычно применяются для:
• создания объекта функции (function object), например, реализация интерфейса
Comparator;• создания объекта процесса (process object), такого как экземпляры классов
Thread, Runnable и подобных;• в статическом методе генерации;
• инициализации открытого статического поля
final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.👍9
Метод delete()
Удаляет символы в подстроке данной строки буфера (StringBuffer). Подстрока начинается с указанного начального индекса и распространяется до символа конечного индекса, или до конца StringBuffer, если такого символа не существует.
Другими словами метод позволяет удалить символы из строки, начиная и заканчивая указанными индексами.
Если start (начальный индекс) равен end (конечный индекс), то изменения не производятся.
Параметры:
• start — начальный индекс, включительно;
• end — конечный индекс, не включая.
Удаляет символы в подстроке данной строки буфера (StringBuffer). Подстрока начинается с указанного начального индекса и распространяется до символа конечного индекса, или до конца StringBuffer, если такого символа не существует.
Другими словами метод позволяет удалить символы из строки, начиная и заканчивая указанными индексами.
Если start (начальный индекс) равен end (конечный индекс), то изменения не производятся.
Параметры:
• start — начальный индекс, включительно;
• end — конечный индекс, не включая.
👍18
Разбираемся с GraalVM, AOT и JIT
Если вы хотите разобраться, что такое GraalVM, как он работает, и в чем различия между Just-In-Time (JIT) компиляцией и Ahead-Of-Time (AOT) компиляцией, то это руководство — именно то, что вы искали.
Смотреть статью
Если вы хотите разобраться, что такое GraalVM, как он работает, и в чем различия между Just-In-Time (JIT) компиляцией и Ahead-Of-Time (AOT) компиляцией, то это руководство — именно то, что вы искали.
Смотреть статью
👍6
#Вопросы_с_собеседования
❓Как разбить строку на подстроки по заданному разделителю?
Мы можем использовать метод split(String regex) для разделения строки на массив символов, используя в качестве разделителя регулярное выражение.
Метод split(String regex, int numOfStrings) является перегруженным методом для разделения строки на заданное количество строк. Мы можем использовать обратную черту для использования специальных символов регулярных выражений в качестве обычных символов.
❓Как разбить строку на подстроки по заданному разделителю?
Мы можем использовать метод split(String regex) для разделения строки на массив символов, используя в качестве разделителя регулярное выражение.
Метод split(String regex, int numOfStrings) является перегруженным методом для разделения строки на заданное количество строк. Мы можем использовать обратную черту для использования специальных символов регулярных выражений в качестве обычных символов.
🔥3👍1
Каков будет результат?
Anonymous Quiz
6%
3 -3 false
25%
3 3 true
24%
-3 3 false
24%
Ошибка компиляции
21%
Узнать ответ
👍12
Каким образом из вложенного класса получить доступ к полю внешнего класса?
Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.
Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например:
Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.
Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например:
Outer.this.field.👍7
Каким будет вывод этого кода?
Anonymous Quiz
26%
My Thread
21%
Thread[My Thread,5,main]
22%
Compilation Error
7%
Runtime Error
24%
Посмотреть ответ
😢9👍8
Оцените количество памяти на хранение одного примитива типа byte в ArrayList?
ArrayList основан на массиве, для примитивных типов данных осуществляется автоматическая упаковка значения, поэтому
ArrayList основан на массиве, для примитивных типов данных осуществляется автоматическая упаковка значения, поэтому
16 байт тратится на хранение упакованного объекта и 4 байта (8 для x64) - на хранение ссылки на этот объект в самой структуре данных. Таким образом, в x32 JVM 4 байта используются на хранение одного элемента и 16 байт - на хранение упакованного объекта типа Byte. Для x64 - 8 байт и 24 байта соответственно.👍9
Блок кода создает поток используя Runnable. Какой из следующих классов может быть использован, чтобы предыдущий код откомпилировался?
Anonymous Quiz
20%
public class MyRunnable implements Runnable{void run(){}}
16%
public class MyRunnable implements Runnable{public void start(){}}
50%
public class MyRunnable implements Runnable{public void run(){}}
11%
public class MyRunnable extends Runnable{public void run(){}}
3%
public class MyRunnable extends Object{public void run(){}}
👍17
Maven — один из самых популярных и удобных инструментов для управления и сборки проектов на Java. Сохраняй и делись с друзьями!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
#Вопросы_с_собеседования
Как устроен HashMap?
Как устроен HashMap?
HashMap состоит из «корзин» (bucket). С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение», вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент. Если корзина пустая, то в нее сохраняется ссылка на вновь добавляемый элемент, если же там уже есть элемент, то происходит последовательный переход по ссылкам между элементами в цепочке, в поисках последнего элемента, от которого и ставится ссылка на вновь добавленный элемент. Если в списке был найден элемент с таким же ключом, то он заменяется.👍17
Программа по сравнению элементов массива и букв строки
Для сравнения элементов массива и букв строки в Java можно использовать следующую программу.
Программа создает массив из символов {'a', 'c', 'd', 'f', 'g'} и строку "abcdefg". В цикле происходит сравнение элементов массива и букв строки с помощью метода charAt(). Если элемент массива равен букве строки, то выводится сообщение об этом.
Затем массив сортируется по возрастанию методом sort() из класса Arrays. Отсортированный массив выводится на экран.
Для сравнения элементов массива и букв строки в Java можно использовать следующую программу.
Программа создает массив из символов {'a', 'c', 'd', 'f', 'g'} и строку "abcdefg". В цикле происходит сравнение элементов массива и букв строки с помощью метода charAt(). Если элемент массива равен букве строки, то выводится сообщение об этом.
Затем массив сортируется по возрастанию методом sort() из класса Arrays. Отсортированный массив выводится на экран.
👍9❤2
Для чего используется оператор NEW?
Anonymous Quiz
6%
Для создания новой переменной.
5%
Для объявления нового класса.
86%
Для создания экземпляра класса.
3%
Это антагонист оператора OLD.
👍11❤3😱3🔥1
Получаем наиболее распространенный элемент в списке
Сделать это можно с помощью следующего фрагмента кода, подробнее о котором можно почитать здесь.
Сделать это можно с помощью следующего фрагмента кода, подробнее о котором можно почитать здесь.
👍17❤4