Java Learning
19.4K subscribers
1.58K photos
1 video
3 files
956 links
№ 5079899194

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
📌 Lombok — библиотека, генерирующая за вас бойлерплейт (шаблонный) код. Даёт возможность создавать классы ускоренно, так как не надо вручную прописывать, например, геттеры и сеттеры, всё делается с помощью аннотаций.

Вы можете создавать неизменяемые классы вместе с типовыми методами и геттерами к ним — с помощью @Value. Все поля класса будут финализированы и сделаны приватными.

Ознакомиться с проектом подробнее можно с помощью документации: https://projectlombok.org/
👍18
#Вопросы_с_собеседования

Как устроен HashMap?

HashMap состоит из «корзин» (bucket). С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение», вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент.

Если корзина пустая, то в нее сохраняется ссылка на вновь добавляемый элемент, если же там уже есть элемент, то происходит последовательный переход по ссылкам между элементами в цепочке, в поисках последнего элемента, от которого и ставится ссылка на вновь добавленный элемент. Если в списке был найден элемент с таким же ключом, то он заменяется.
👍39
Метод Iterable.forEach

Перебирает переданную коллекцию, и выполняет лямбда-выражение action для каждого ее элемента.
👍29
#Вопросы_с_собеседования

Какие есть особенности класса String?

🧠 Это неизменяемый (immutable) и финализированный тип данных;
🧠 Все объекты класса String JVM хранит в пуле строк;
🧠 Объект класса String можно получить, используя двойные кавычки;
🧠 Можно использовать оператор + для конкатенации строк;
🧠 Начиная с Java 7 строки можно использовать в конструкции switch.
👍35
🧠 Сравнение объектов в Java

Сравнение объектов является важной функцией объектно-ориентированных языков программирования. В этой статье рассматриваются некоторые функции языка Java, которые позволяют сравнивать объекты. Также авторы статьи обращают внимание на подобные функции во внешних библиотеках.

Смотреть статью
👍18
Collections.min/max

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

Казалось бы, такая тривиальная задача должна быть давно решена. На самом деле она и так давно решена: есть методы Collections.min и Collections.max. Раньше было не очень удобно писать компараторы, но в Java-8 всё стало легче.

К примеру, вам нужно найти ключ в Map, соответствующий максимальному значению. Воспользуйтесь кодом с картинки.
👍37
Что выведет код сверху?
Anonymous Quiz
9%
0
3%
Случайное значение
49%
40
39%
Error
👍27😱11👎2
#Вопросы_с_собеседования

Что такое checked и unchecked exception?

В Java все исключения делятся на два типа:

checked (контролируемые/проверяемые исключения) должны обрабатываться блоком catch или описываться в заголовке метода (например, throws IOException). Наличие такого обработчика/модификатора в заголовке метода проверяется на этапе компиляции;
unchecked (неконтролируемые/непроверяемые исключения), к которым относятся ошибки Error (например, OutOfMemoryError), обрабатывать которые не рекомендуется и исключения времени выполнения, представленные классом RuntimeException и его наследниками (например, NullPointerException), которые могут не обрабатываться блоком catch и не быть описанными в заголовке метода.
👍32
#Вопросы_с_собеседования

Что такое Reflection?

Рефлексия (Reflection) - это механизм получения данных о программе во время её выполнения (runtime). В Java Reflection осуществляется с помощью Java Reflection API, состоящего из классов пакетов java.lang и java.lang.reflect.

Возможности Java Reflection API:
• Определение класса объекта;
• Получение информации о модификаторах класса, полях, методах, конструкторах и суперклассах;
• Определение интерфейсов, реализуемых классом;
• Создание экземпляра класса;
• Получение и установка значений полей объекта;
• Вызов методов объекта;
• Создание нового массива.
👍26
Валидация даты из строки

Если необходимо достать объект Date из обычной строки в Java, можете использовать небольшой утилитный класс, который приведен выше. Он позаботится обо всех сложностях валидации и преобразовании строки в объект Date.
👍24👎5
#Вопросы_с_собеседования

Как вызывать default метод интерфейса в реализующем этот интерфейс классе?

Используя ключевое слово super вместе с именем интерфейса.
👍29
Hibernate-ORM

Hibernate — библиотека, предназначенная для решения задач объектно-реляционного отображения (ORM). Hibernate ORM используется для хранения данных в реляционных базах данных. Она обеспечивает более простой и абстрактный способ сделать это для разработчиков. Он использует JDBC в своей реализации. Hibernate также является реализацией спецификации JPA.

Почитать о Hibernate ORM можно здесь.
👍22😱2
#вопросы_с_собеседований

Реализуйте симметрическую разность двух коллекций, используя методы Collection (addAll(...), removeAll(...), retainAll(...)).

Симметрическая разность двух коллекций — это множество элементов, одновременно не принадлежащих обоим исходным коллекциям.
👍30
Переворачиваем изображение на 180 градусов

С помощью следующего фрагмента кода вы можете получить перевернутое на 180 градусов изображение.

Подробнее можно ознакомиться здесь.
👍19😱6
👎3👍1
Что выведет код сверху?
Anonymous Quiz
33%
3 3
6%
2 3
13%
Runtime Error
48%
Compilation Error
👍26🤔1