#Вопросы_с_собеседования
❓Может ли один блок catch отлавливать сразу несколько исключений?
В Java 7 стала доступна новая языковая конструкция, с помощью которой можно перехватывать несколько исключений одним блоком
❓Может ли один блок catch отлавливать сразу несколько исключений?
В Java 7 стала доступна новая языковая конструкция, с помощью которой можно перехватывать несколько исключений одним блоком
catch
.👍47
elastic/elasticsearch ⭐️ 59k
Это распределенная поисковая система на Java с большими возможностями. Поддерживает многопоточность, горизонтально масштабируется. Находится в свободном доступе и используется многими популярными сайтами.
https://github.com/elastic/elasticsearch
Это распределенная поисковая система на Java с большими возможностями. Поддерживает многопоточность, горизонтально масштабируется. Находится в свободном доступе и используется многими популярными сайтами.
https://github.com/elastic/elasticsearch
GitHub
GitHub - elastic/elasticsearch: Free and Open Source, Distributed, RESTful Search Engine
Free and Open Source, Distributed, RESTful Search Engine - elastic/elasticsearch
👍9👎1
#Вопросы_с_собеседования
❓Как поведёт себя коллекция, если вызвать iterator.remove()?
Если вызову
❓Как поведёт себя коллекция, если вызвать iterator.remove()?
Если вызову
iterator.remove()
предшествовал вызов iterator.next()
, то iterator.remove()
удалит элемент коллекции, на который указывает итератор, в противном случае будет выброшено IllegalStateException()
.👍32
👍35😱2
#Вопросы_с_собеседования
❓В реализации класса ArrayList есть следующие поля: Object[] elementData, int size. Объясните, зачем хранить отдельно size, если всегда можно взять elementData.length?
Размер массива
❓В реализации класса ArrayList есть следующие поля: Object[] elementData, int size. Объясните, зачем хранить отдельно size, если всегда можно взять elementData.length?
Размер массива
elementData
представляет собой вместимость (capacity) ArrayList
, которая всегда больше переменной size
- реального количества хранимых элементов. При необходимости вместимость автоматически возрастает.👍40❤1
Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana
В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.
Смотреть статью
В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.
Смотреть статью
Хабр
Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana
Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать". К какой из...
👍21
#Вопросы_с_собеседования
❓Даны 3 потока Т1, Т2 и Т3? Как реализовать выполнение в последовательности Т1, Т2, Т3?
Такой последовательности выполнения можно достичь многими способами, например просто воспользоваться методом, чтобы запустить поток в момент, когда другой уже закончит своё выполнение.
Для реализации заданной последовательности, нужно запустить последний поток первым, и затем вызывать метод
❓Даны 3 потока Т1, Т2 и Т3? Как реализовать выполнение в последовательности Т1, Т2, Т3?
Такой последовательности выполнения можно достичь многими способами, например просто воспользоваться методом, чтобы запустить поток в момент, когда другой уже закончит своё выполнение.
Для реализации заданной последовательности, нужно запустить последний поток первым, и затем вызывать метод
join()
в обратном порядке, то есть Т3 вызывает Т2.join
, а Т2 вызывает Т1.join
, таким образом Т1 закончит выполнение первым, а Т3 последним.👍36
Извлекаем год, месяц и день из даты
Чтобы извлечь год, LocalDate просто предоставляет метод getYear.
Аналогично, для извлечения месяца мы используем getMonthValue API. В отличие от календаря, месяцы в LocalDate индексируются с 1; для января это вернет 1.
Наконец, для извлечения дня у нас есть метод getDayOfMonth.
Чтобы извлечь год, LocalDate просто предоставляет метод getYear.
Аналогично, для извлечения месяца мы используем getMonthValue API. В отличие от календаря, месяцы в LocalDate индексируются с 1; для января это вернет 1.
Наконец, для извлечения дня у нас есть метод getDayOfMonth.
👍35
#Вопросы_с_собеседования
❓Каково максимальное число значений hashCode()?
Число значений следует из сигнатуры
❓Каково максимальное число значений hashCode()?
Число значений следует из сигнатуры
int hashCode()
и равно диапазону типа int
— 2^32.👍33❤2
#Вопросы_с_собеседования
❓Что позволяет сделать PriorityQueue?
Особенностью
Используя
❓Что позволяет сделать PriorityQueue?
Особенностью
PriorityQueue
является возможность управления порядком элементов. По-умолчанию, элементы сортируются с использованием «natural ordering», но это поведение может быть переопределено при помощи объекта Comparator
, который задаётся при создании очереди. Данная коллекция не поддерживает null в качестве элементов.Используя
PriorityQueue
, можно, например, реализовать алгоритм Дейкстры для поиска кратчайшего пути от одной вершины графа к другой. Либо для хранения объектов согласно определённого свойства.👍24👎1
Учебник по Java: введение в класс String
Оттачиваем навык работы со строчками: создание, форматирование, конкатенация строк и самые часто используемые методы.
Смотреть статью
Оттачиваем навык работы со строчками: создание, форматирование, конкатенация строк и самые часто используемые методы.
Смотреть статью
Библиотека программиста
☕ Учебник по Java: введение в класс String
Оттачиваем навык работы со строчками: создание, форматирование, конкатенация строк и самые часто используемые методы.
👍16❤1👎1
#Вопросы_с_собеседования
Что такое shutdownhook?
Shutdownhook — это поток, который неявно вызывается до завершения работы JVM(виртуальная машина Java). Таким образом, мы можем использовать его для очистки ресурса или сохранения состояния, когда виртуальная машина Java выключается нормально или внезапно.
Мы можем добавить shutdown hook, используя следующий метод:
Runtime.getRuntime().addShutdownHook(new ShutdownHookThreadExample());
Что такое shutdownhook?
Shutdownhook — это поток, который неявно вызывается до завершения работы JVM(виртуальная машина Java). Таким образом, мы можем использовать его для очистки ресурса или сохранения состояния, когда виртуальная машина Java выключается нормально или внезапно.
Мы можем добавить shutdown hook, используя следующий метод:
Runtime.getRuntime().addShutdownHook(new ShutdownHookThreadExample());
👍27
#Вопросы_с_собеседования
❓Как избежать ConcurrentModificationException во время перебора коллекции?
• Попробовать подобрать или реализовать самостоятельно другой итератор, работающий по принципу fail-safe.
• Использовать
• Преобразовать список в массив и перебирать массив.
• Блокировать изменения списка на время перебора с помощью блока
Отрицательная сторона последних двух вариантов - ухудшение производительности.
❓Как избежать ConcurrentModificationException во время перебора коллекции?
• Попробовать подобрать или реализовать самостоятельно другой итератор, работающий по принципу fail-safe.
• Использовать
ConcurrentHashMap
и CopyOnWriteArrayList
.• Преобразовать список в массив и перебирать массив.
• Блокировать изменения списка на время перебора с помощью блока
synchronized
.Отрицательная сторона последних двух вариантов - ухудшение производительности.
👍19
#Вопросы_с_собеседования
❓Напишите программу, которая узнает сколько дней прошло с начала года?
Ответ на картинке.
❓Напишите программу, которая узнает сколько дней прошло с начала года?
Ответ на картинке.
👍35👎20😱3
Глубокое погружение в Java Memory Model
В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике.
Смотреть статью
В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике.
Смотреть статью
Хабр
Глубокое погружение в Java Memory Model
Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме. В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да,...
👍13
#Вопросы_с_собеседования
❓FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок
Таким образом, исходя из факта, что
❓FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок
catch(Exception ex) {}
, иначе все дальнейшие блоки catch()
уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex)
.Таким образом, исходя из факта, что
FileNotFoundException extends IOException
сначала нужно обработать FileNotFoundException
, а затем уже IOException
.👍43
#Вопросы_с_собеседования
❓Как и когда происходит увеличение количества корзин в HashMap?
Помимо
❓Как и когда происходит увеличение количества корзин в HashMap?
Помимо
capacity
у HashMap
есть еще поле loadFactor
, на основании которого, вычисляется предельное количество занятых корзин capacity * loadFactor
. По умолчанию loadFactor = 0.75
. По достижению предельного значения, число корзин увеличивается в 2 раза и для всех хранимых элементов вычисляется новое «местоположение» с учетом нового числа корзин.👍27