#Вопросы_с_собеседования 
❓Какое худшее время работы метода get(key) для ключа, который есть в HashMap?
O(N). Худший случай - это поиск ключа в
Но начиная с Java 8, после определенного числа элементов в списке, связный список преобразовывается в красно-черное дерево и сложность выборки, даже в случае плохой хеш-функции, не хуже логарифмической O(log(N)).
❓Какое худшее время работы метода get(key) для ключа, который есть в HashMap?
O(N). Худший случай - это поиск ключа в
HashMap, вырожденного в список по причине совпадения ключей по hashCode() и для выяснения хранится ли элемент с определённым ключом может потребоваться перебор всего списка.Но начиная с Java 8, после определенного числа элементов в списке, связный список преобразовывается в красно-черное дерево и сложность выборки, даже в случае плохой хеш-функции, не хуже логарифмической O(log(N)).
👍31👎2
  #Вопросы_с_собеседования 
❓Каким образом реализованы методы hashCode() и equals() в классе Object?
Реализация метода
Реализация метода
❓Каким образом реализованы методы hashCode() и equals() в классе Object?
Реализация метода
Object.equals() сводится к проверке на равенство двух ссылок(код 1 на картинке).Реализация метода
Object.hashCode() описана как native, т.е. определенной не с помощью Java кода и обычно возвращает адрес объекта в памяти(код 2 на картинке).👍32👎6
  Топ 10 фреймворков тестирования для Java в 2020 году
Java не зря считают одним из наиболее универсальных языков программирования. В этой статье мы расскажем о 10 лучших фреймворках тестирования для него.
Смотреть статью
  
  Java не зря считают одним из наиболее универсальных языков программирования. В этой статье мы расскажем о 10 лучших фреймворках тестирования для него.
Смотреть статью
Библиотека программиста
  
  ☕ Топ 10 фреймворков тестирования для Java в 2020 году
  Java не зря считают одним из наиболее универсальных языков программирования. В этой статье мы расскажем о 10 лучших фреймворках тестирования для него.
👍10
  #Вопросы_с_собеседования 
❓Какие существуют unchecked exception?
Наиболее часто встречающиеся:
❓Какие существуют unchecked exception?
Наиболее часто встречающиеся:
ArithmeticException, ClassCastException, ConcurrentModificationException, IllegalArgumentException, IllegalStateException, IndexOutOfBoundsException, NoSuchElementException, NullPointerException, UnsupportedOperationException.👍27
  👍42
  Введение в сериализацию
Сериализация — это процесс сохранения состояния объекта в последовательность байт.
Смотреть видео
  
  Сериализация — это процесс сохранения состояния объекта в последовательность байт.
Смотреть видео
YouTube
  
  Урок по Java 46: Сериализация
  Cкидки до 22-го января на все курсы всего за 9.99:
Каждый купон расчитан на 10 покупок, спешите!
Новый курс по Photoshop:
https://www.udemy.com/course/draft/3356128/?couponCode=4CD42A416E75E5BB51B2
HIBERNATE:
https://www.udemy.com/course/hibernate-kurs/…
Каждый купон расчитан на 10 покупок, спешите!
Новый курс по Photoshop:
https://www.udemy.com/course/draft/3356128/?couponCode=4CD42A416E75E5BB51B2
HIBERNATE:
https://www.udemy.com/course/hibernate-kurs/…
👍12
  #Вопросы_с_собеседования 
❓Как исключить поля из сериализации?
Для управления сериализацией при определении полей можно использовать ключевое слово
❓Как исключить поля из сериализации?
Для управления сериализацией при определении полей можно использовать ключевое слово
transient, таким образом исключив поля из общего процесса сериализации.👍26
  #Вопросы_с_собеседования 
❓Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...]
Ответ на картинке.
❓Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...]
Ответ на картинке.
👍31
  #Вопросы_с_собеседования 
❓Может ли один блок 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