Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.87K photos
38 videos
42 files
2.65K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Миникурс из трех лекций по особенностям работы с дженериками.

https://proglib.io/w/b46584ef
Beginning Java Data Structures and Algorithms (2018)
Автор: James Cutajar

Хоть ваше приложение хорошо выполняет свои задачи, оно может не быть эффективным и быстрым. Читая книгу, вы изучите методы, позволяющие точно прогнозировать эффективность кода, легко отбрасывать неэффективные решения и повышать производительность вашего приложения.

Скачать книгу
#вопросы_с_собеседований
Как изменить стандартное поведение сериализации/десериализации?
✔️ Реализовать интерфейс java.io.Externalizable, который позволяет применение пользовательской логики сериализации. Способ сериализации и десериализации описывается в методах writeExternal() и readExternal(). Во время десериализации вызывается конструктор без параметров, а потом уже на созданном объекте вызывается метод readExternal.
✔️ Если у сериализуемого объекта реализован один из следующих методов, то механизм сериализации будет использовать его, а не метод по умолчанию:
writeObject() - запись объекта в поток;
readObject() - чтение объекта из потока;
writeReplace() - позволяет заменить себя экземпляром другого класса перед записью;
readResolve() - позволяет заменить на себя другой объект после чтения.
#вопросы_с_собеседований
1. Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode()?
2. Могут ли у разных объектов быть одинаковые hashCode()?
1. Общий совет: выбирать поля, которые с большой долью вероятности будут различаться. Для этого необходимо использовать уникальные, лучше всего примитивные поля, например такие как id, uuid. При этом нужно следовать правилу, если поля задействованы при вычислении hashCode(), то они должны быть задействованы и при выполнении equals().
2. Да, могут. Метод hashCode() не гарантирует уникальность возвращаемого значения. Ситуация, когда у разных объектов одинаковые хэш коды называется коллизией. Вероятность возникновения коллизии зависит от используемого алгоритма генерации хэш кода.
Java Programming (2018)
Автор: Joyce Farrell

Даже если вы начинающий программист, книга поможет вам быстро приступить к разработке полезных программ, при этом овладев основными принципами структурного и объектно-ориентированного программирования. Книга содержит уникальные, понятные для читателя объяснения и содержательные упражнения по программированию. Дополнительные цифровые учебные ресурсы в MindTap предоставляют интерактивные инструменты обучения, а также IDE (среда разработки) для отработки и развития ваших навыков.

Скачать книгу
Разыскивается Senior Java Developer в крупный федеральный банк в Москве (офис)

Требования:
— Java (core, collections, io, generics, multithreading, concurrency, security);
— Junit, TestNG, Mockito
— MS SQL Server (T-SQL) или другими PostgreSQL / Oracle
— CI/CD
— Git

Условия:
— Зарплатная вилка 170 - 300 К рублей / месяц + премии
— Официальное трудоустройство
— Расширенный соц.пакет и ДМС со стоматологией
— Релокационный пакет

➡️ Подробности - https://proglib.io/vacancies/senior-java-developer-iskusstvo-rekrutinga-mezhdunarodnyy-kadrovyy-centr-2020-05-05
📕 25 лучших книг для программистов

Список наиболее часто рекомендуемых книг о программировании, составлен по результатам анализа упоминаний в интернет-публикациях. Книги об алгоритмах, чистом коде, паттернах проектирования, а также пособия для развития soft skills и прохождения собеседований.

https://proglib.io/w/d604cfd8
#вопросы_с_собеседований
1. Что позволяет сделать PriorityQueue?
2. Оцените количество памяти на хранение одного примитива типа byte в ArrayList.
1. Особенностью PriorityQueue является возможность управления порядком элементов. По-умолчанию, элементы сортируются с использованием «natural ordering», но это поведение может быть переопределено при помощи объекта Comparator, который задаётся при создании очереди. Данная коллекция не поддерживает null в качестве элементов.

Используя PriorityQueue, можно, например, реализовать алгоритм Дейкстры для поиска кратчайшего пути от одной вершины графа к другой. Либо для хранения объектов согласно определённого свойства.
2. ArrayList основан на массиве, для примитивных типов данных осуществляется автоматическая упаковка значения, поэтому 16 байт тратится на хранение упакованного объекта и 4 байта (8 для x64) - на хранение ссылки на этот объект в самой структуре данных. Таким образом, в x32 JVM 4 байта используются на хранение одного элемента и 16 байт - на хранение упакованного объекта типа Byte. Для x64 - 8 байт и 24 байта соответственно.
#вопросы_с_собеседований
Как написать собственное («пользовательское») исключение?
Необходимо унаследоваться от базового класса требуемого типа исключений (например от Exception или RuntimeException).