Javazavr. Обучение Java.
4.23K subscribers
37 photos
56 links
Главный канал по Java.

Контент на любой вкус.
1. Туториалы
2. Видео
3. Задачи
4. Тесты
И многое другое.

Реклама: @anothertechrock
Download Telegram
#вопросы_с_собеседований

Как избежать ConcurrentModificationException во время перебора коллекции?
☕️ Попробовать подобрать или реализовать самостоятельно другой итератор, работающий по принципу fail-safe.
☕️ Использовать ConcurrentHashMap и CopyOnWriteArrayList.
☕️ Преобразовать список в массив и перебирать массив.
☕️ Блокировать изменения списка на время перебора с помощью блока synchronized.

Отрицательная сторона последних двух вариантов - ухудшение производительности.
#вопросы_с_собеседований

Какой символ является разделителем при указании пути в файловой системе?
Для различных операционных систем символ разделителя различается. Для Windows это \, для Linux - /.

В Java получить разделитель для текущей операционной системы можно через обращение к статическому полю File.separator.
JSP расширяет технологию сервлетов, обеспечивая возможность создания динамических страниц с HTML-подобным синтаксисом.

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

Еще одним преимуществом JSP является горячее развертывание - возможность заменить одну страницу на другую непосредственно в контейнере без необходимости перекомпилировать весь проект или перезапускать сервер.

Однако рекомендуется избегать написания серьёзной бизнес-логики в JSP и использовать страницу только в качестве представления.
👍1
#вопросы_с_собеседований

Чем отличаются и что общего у InputStream, OutputStream, Reader, Writer?
☕️ InputStream и его наследники - совокупность для получения байтовых данных из различных источников;
☕️ OutputStream и его наследники - набор классов, определяющих потоковый байтовый вывод;
☕️ Reader и его наследники определяют потоковый ввод символов Unicode;
☕️ Writer и его наследники определяют потоковый вывод символов Unicode.
👍1
#вопросы_с_собеседований

Какой метод HTTP не является неизменяемым?
HTTP метод называется неизменяемым, если он на один и тот же запрос всегда возвращает одинаковый результат. HTTP методы GET, PUT, DELETE, HEAD и OPTIONS являются неизменяемыми, поэтому необходимо реализовывать приложение так, чтобы эти методы возвращали одинаковый результат постоянно. К изменяемым методам относится метод POST, который и используется для реализации чего-либо, что изменяется при каждом запросе.

К примеру, для доступа к статической HTML-странице используется метод GET, т.к. он всегда возвращает одинаковый результат. При необходимости сохранять какую-либо информацию, например в базе данных, нужно использовать POST метод.
👍3
Nashorn - это движок JavaScript, разрабатываемый на Java компанией Oracle. Призван дать возможность встраивать код JavaScript в приложения Java. В сравнении с Rhino, который поддерживается Mozilla Foundation, Nashorn обеспечивает от 2 до 10 раз более высокую производительность, так как он компилирует код и передает байт-код виртуальной машине Java непосредственно в памяти. Nashorn умеет компилировать код JavaScript и генерировать классы Java, которые загружаются специальным загрузчиком. Так же возможен вызов кода Java прямо из JavaScript.
👍9
#вопросы_с_собеседований

Для чего используется PushbackInputStream?

Разновидность буферизации, обеспечивающая чтение байта с последующим его возвратом в поток. Класс PushbackInputStream представляет механизм «заглянуть» во входной поток и увидеть, что оттуда поступит в следующий момент, не извлекая информации.

У класса есть дополнительный метод unread().
👍10
Какой результат выполнения следующего кода:
Anonymous Quiz
21%
true
27%
false
25%
Ошибка компиляции
28%
Не знаю
👍8🌭4😁3
Какие классы позволяют ускорить чтение/запись за счет использования буфера?
BufferedInputStream(InputStream in)/ BufferedInputStream(InputStream in, int size),
BufferedOutputStream(OutputStream out)/BufferedOutputStream(OutputStream out, int size),
BufferedReader(Reader r)/BufferedReader(Reader in, int sz),
BufferedWriter(Writer out)/BufferedWriter(Writer out, int sz)
👍12
#вопросы_с_собеседований

Как зарегистрировать драйвер JDBC?
👍1
#вопросы_с_собеседований

Объясните выражение System.out::println.
👍1