Java Learning
19.2K subscribers
1.59K photos
1 video
3 files
967 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
#Вопросы_с_собеседования

Каково максимальное число значений hashCode()?

Число значений следует из сигнатуры int hashCode() и равно диапазону типа int — 2^32.
👍332
#Вопросы_с_собеседования

Что позволяет сделать PriorityQueue?

Особенностью PriorityQueue является возможность управления порядком элементов. По-умолчанию, элементы сортируются с использованием «natural ordering», но это поведение может быть переопределено при помощи объекта Comparator, который задаётся при создании очереди. Данная коллекция не поддерживает null в качестве элементов.

Используя PriorityQueue, можно, например, реализовать алгоритм Дейкстры для поиска кратчайшего пути от одной вершины графа к другой. Либо для хранения объектов согласно определённого свойства.
👍24👎1
Учебник по Java: введение в класс String

Оттачиваем навык работы со строчками: создание, форматирование, конкатенация строк и самые часто используемые методы.

Смотреть статью
👍161👎1
#Вопросы_с_собеседования

Что такое shutdownhook?

Shutdownhook — это поток, который неявно вызывается до завершения работы JVM(виртуальная машина Java). Таким образом, мы можем использовать его для очистки ресурса или сохранения состояния, когда виртуальная машина Java выключается нормально или внезапно.

Мы можем добавить shutdown hook, используя следующий метод:

Runtime.getRuntime().addShutdownHook(new ShutdownHookThreadExample());
👍27
#Вопросы_с_собеседования

Как избежать ConcurrentModificationException во время перебора коллекции?

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

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

Напишите программу, которая узнает сколько дней прошло с начала года?

Ответ на картинке.
👍35👎20😱3
Выключение компьютера с помощью Java

С помощью следующего фрагмента кода, вы сможете с легкостью выключить свой компьютер.
👍51😱10👎4
#Вопросы_с_собеседования

FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?

Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).

Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.
👍43
#Вопросы_с_собеседования

Как и когда происходит увеличение количества корзин в HashMap?

Помимо capacity у HashMap есть еще поле loadFactor, на основании которого, вычисляется предельное количество занятых корзин capacity * loadFactor. По умолчанию loadFactor = 0.75. По достижению предельного значения, число корзин увеличивается в 2 раза и для всех хранимых элементов вычисляется новое «местоположение» с учетом нового числа корзин.
👍27
#Вопросы_с_собеседования

Как преобразовать строку в целое число?

Ответ на картинке.
👍39
Как проверить, отсортирован ли массив в Java

Один из способов - это использование библиотеки Apache Commons Lang, которая предлагает статический служебный метод. isSorted() в ArrayUtils учебный класс.

Другие варианты проверки отсортирован ли массив можно найти здесь.
👍28
#Вопросы_с_собеседования

Как перебрать все пары «ключ-значение» в Map?

Использовать метод entrySet(), который возвращает множество Set<Map.Entry<K, V> пар «ключ-значение».
👍22👎4
👍18👎11😱1
Что выведет код сверху?
Anonymous Quiz
32%
10
24%
100
37%
99
8%
9
👎34👍31😱3
LJV: Чему нас может научить визуализация структур данных в Java

LJV — проект, созданный в 2004 году как инструмент для преподавания языка Java студентам. Он позволяет визуализировать внутреннее устройство структур данных. В этом докладе запускается LJV на разных структурах (от String до ConcurrentSkipListMap) в разных версиях Java и разбирается, что там внутри, как оно менялось от версии к версии, и как это всё работает.

Смотреть статью
👍11
#Вопросы_с_собеседования

Напишите минимальный неблокирующий стек (всего два метода — push() и pop()) с использованием Semaphore

Ответ на картинке.
👍24
#Вопросы_с_собеседования

Сколько создается новых объектов, когда вы добавляете новый элемент в HashMap?

Создается один новый объект статического вложенного класса Entry<K,V>.
👍24