java8-tutorial
Подробный гайд по Java 8, шаг за шагом описывающий все возможности и особенности Java. Короткие примеры грамотно иллюстрируют основные концепции: минимум текста, максимум наглядности. Данный репозиторий может быть как справочником, так и учебником.
https://github.com/winterbe/java8-tutorial
Подробный гайд по Java 8, шаг за шагом описывающий все возможности и особенности Java. Короткие примеры грамотно иллюстрируют основные концепции: минимум текста, максимум наглядности. Данный репозиторий может быть как справочником, так и учебником.
https://github.com/winterbe/java8-tutorial
GitHub
GitHub - winterbe/java8-tutorial: Modern Java - A Guide to Java 8
Modern Java - A Guide to Java 8. Contribute to winterbe/java8-tutorial development by creating an account on GitHub.
👍18
#Вопросы_с_собеседования
Где и как вы можете использовать приватный конструктор?
Приватный (помеченный ключевым словом private, скрытый) конструктор может использоваться публичным статическим методом генерации объектов данного класса. Также доступ к нему разрешён вложенным классам и может использоваться для их нужд.
Где и как вы можете использовать приватный конструктор?
Приватный (помеченный ключевым словом private, скрытый) конструктор может использоваться публичным статическим методом генерации объектов данного класса. Также доступ к нему разрешён вложенным классам и может использоваться для их нужд.
👍17
📌 Lombok — библиотека, генерирующая за вас бойлерплейт (шаблонный) код. Даёт возможность создавать классы ускоренно, так как не надо вручную прописывать, например, геттеры и сеттеры, всё делается с помощью аннотаций.
Вы можете создавать неизменяемые классы вместе с типовыми методами и геттерами к ним — с помощью @Value. Все поля класса будут финализированы и сделаны приватными.
Ознакомиться с проектом подробнее можно с помощью документации: https://projectlombok.org/
Вы можете создавать неизменяемые классы вместе с типовыми методами и геттерами к ним — с помощью @Value. Все поля класса будут финализированы и сделаны приватными.
Ознакомиться с проектом подробнее можно с помощью документации: https://projectlombok.org/
👍18
#Вопросы_с_собеседования
Как устроен HashMap?
HashMap состоит из «корзин» (bucket). С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение», вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент.
Если корзина пустая, то в нее сохраняется ссылка на вновь добавляемый элемент, если же там уже есть элемент, то происходит последовательный переход по ссылкам между элементами в цепочке, в поисках последнего элемента, от которого и ставится ссылка на вновь добавленный элемент. Если в списке был найден элемент с таким же ключом, то он заменяется.
Как устроен HashMap?
HashMap состоит из «корзин» (bucket). С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение», вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент.
Если корзина пустая, то в нее сохраняется ссылка на вновь добавляемый элемент, если же там уже есть элемент, то происходит последовательный переход по ссылкам между элементами в цепочке, в поисках последнего элемента, от которого и ставится ссылка на вновь добавленный элемент. Если в списке был найден элемент с таким же ключом, то он заменяется.
👍39
#Вопросы_с_собеседования
Какие есть особенности класса String?
🧠 Это неизменяемый (immutable) и финализированный тип данных;
🧠 Все объекты класса String JVM хранит в пуле строк;
🧠 Объект класса String можно получить, используя двойные кавычки;
🧠 Можно использовать оператор + для конкатенации строк;
🧠 Начиная с Java 7 строки можно использовать в конструкции switch.
Какие есть особенности класса String?
🧠 Это неизменяемый (immutable) и финализированный тип данных;
🧠 Все объекты класса String JVM хранит в пуле строк;
🧠 Объект класса String можно получить, используя двойные кавычки;
🧠 Можно использовать оператор + для конкатенации строк;
🧠 Начиная с Java 7 строки можно использовать в конструкции switch.
👍35
🧠 Сравнение объектов в Java
Сравнение объектов является важной функцией объектно-ориентированных языков программирования. В этой статье рассматриваются некоторые функции языка Java, которые позволяют сравнивать объекты. Также авторы статьи обращают внимание на подобные функции во внешних библиотеках.
Смотреть статью
Сравнение объектов является важной функцией объектно-ориентированных языков программирования. В этой статье рассматриваются некоторые функции языка Java, которые позволяют сравнивать объекты. Также авторы статьи обращают внимание на подобные функции во внешних библиотеках.
Смотреть статью
Хабр
Сравнение объектов в Java
Вступление Сравнение объектов является важной функцией объектно-ориентированных языков программирования. В этом руководстве мы рассмотрим некоторые функции языка Java, которые позволяют нам сравнивать...
👍18
Collections.min/max
Удивительно, насколько часто можно встретить написанный вручную код, который находит максимальный или минимальный элемент чего-то по какому-нибудь критерию.
Казалось бы, такая тривиальная задача должна быть давно решена. На самом деле она и так давно решена: есть методы Collections.min и Collections.max. Раньше было не очень удобно писать компараторы, но в Java-8 всё стало легче.
К примеру, вам нужно найти ключ в Map, соответствующий максимальному значению. Воспользуйтесь кодом с картинки.
Удивительно, насколько часто можно встретить написанный вручную код, который находит максимальный или минимальный элемент чего-то по какому-нибудь критерию.
Казалось бы, такая тривиальная задача должна быть давно решена. На самом деле она и так давно решена: есть методы Collections.min и Collections.max. Раньше было не очень удобно писать компараторы, но в Java-8 всё стало легче.
К примеру, вам нужно найти ключ в Map, соответствующий максимальному значению. Воспользуйтесь кодом с картинки.
👍37
👍27😱11👎2
#Вопросы_с_собеседования
❓Что такое checked и unchecked exception?
В Java все исключения делятся на два типа:
• checked (контролируемые/проверяемые исключения) должны обрабатываться блоком catch или описываться в заголовке метода (например, throws IOException). Наличие такого обработчика/модификатора в заголовке метода проверяется на этапе компиляции;
• unchecked (неконтролируемые/непроверяемые исключения), к которым относятся ошибки Error (например, OutOfMemoryError), обрабатывать которые не рекомендуется и исключения времени выполнения, представленные классом RuntimeException и его наследниками (например, NullPointerException), которые могут не обрабатываться блоком catch и не быть описанными в заголовке метода.
❓Что такое 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:
• Определение класса объекта;
• Получение информации о модификаторах класса, полях, методах, конструкторах и суперклассах;
• Определение интерфейсов, реализуемых классом;
• Создание экземпляра класса;
• Получение и установка значений полей объекта;
• Вызов методов объекта;
• Создание нового массива.
❓Что такое Reflection?
Рефлексия (Reflection) - это механизм получения данных о программе во время её выполнения (runtime). В Java Reflection осуществляется с помощью Java Reflection API, состоящего из классов пакетов java.lang и java.lang.reflect.
Возможности Java Reflection API:
• Определение класса объекта;
• Получение информации о модификаторах класса, полях, методах, конструкторах и суперклассах;
• Определение интерфейсов, реализуемых классом;
• Создание экземпляра класса;
• Получение и установка значений полей объекта;
• Вызов методов объекта;
• Создание нового массива.
👍26
#Вопросы_с_собеседования
❓Как вызывать default метод интерфейса в реализующем этот интерфейс классе?
Используя ключевое слово super вместе с именем интерфейса.
❓Как вызывать default метод интерфейса в реализующем этот интерфейс классе?
Используя ключевое слово super вместе с именем интерфейса.
👍29
Hibernate-ORM
Hibernate — библиотека, предназначенная для решения задач объектно-реляционного отображения (ORM). Hibernate ORM используется для хранения данных в реляционных базах данных. Она обеспечивает более простой и абстрактный способ сделать это для разработчиков. Он использует JDBC в своей реализации. Hibernate также является реализацией спецификации JPA.
Почитать о Hibernate ORM можно здесь.
Hibernate — библиотека, предназначенная для решения задач объектно-реляционного отображения (ORM). Hibernate ORM используется для хранения данных в реляционных базах данных. Она обеспечивает более простой и абстрактный способ сделать это для разработчиков. Он использует JDBC в своей реализации. Hibernate также является реализацией спецификации JPA.
Почитать о Hibernate ORM можно здесь.
👍22😱2
🎮 10 самых легендарных Java-игр
https://www.iguides.ru/blogs/palach-govorit/the-10-most-legendary-javagames-/
https://www.iguides.ru/blogs/palach-govorit/the-10-most-legendary-javagames-/
iGuides
10 самых легендарных Java-игр
Блоги читателей
👍9
#вопросы_с_собеседований
Реализуйте симметрическую разность двух коллекций, используя методы Collection (addAll(...), removeAll(...), retainAll(...)).
Симметрическая разность двух коллекций — это множество элементов, одновременно не принадлежащих обоим исходным коллекциям.
Реализуйте симметрическую разность двух коллекций, используя методы Collection (addAll(...), removeAll(...), retainAll(...)).
Симметрическая разность двух коллекций — это множество элементов, одновременно не принадлежащих обоим исходным коллекциям.
👍30