Библиотека Java разработчика
10.7K subscribers
1.16K photos
580 videos
58 files
1.46K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


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

РКН clck.ru/3KoGeP
Download Telegram
Что вернет выражение 1.0/0.0? Приведет ли оно к генерации исключения или ошибке при компиляции?

Еще один каверзный вопрос насчет класса Double. Хотя разработчики Java знают о существовании простого типа данных double и класса Double, при выполнении операций с плавающей точкой они не уделяют достаточного внимания Double.INFINITY, NaN, -0.0 и правилам, которым подчиняются связанные с ними арифметические вычисления.

Ответ на этот вопрос прост: генерации исключения ArithmeticException не произойдет, будет возвращено значение Double.INFINITY.

👉@BookJava
👍7
Что будет, если попытаться вставить в HashMap уже имеющийся в ней ключевой объект?

Этот каверзный вопрос – часть другого часто задаваемого вопроса: как работают HashMap в языке Java? HashMap – популярная тема для запутанных и каверзных вопросов по языку Java.

Ответ таков: если попытаться повторно вставить ключ в HashMap, он заменит старый, поскольку класс HashMap не допускает дублирующихся ключей. А тот же ключ означает такой же хэш-код, так что он попадет в то же место в хэш-сегменте.

👉@BookJava
👍2🥰1
Media is too big
VIEW IN TELEGRAM
Java. Быстрая сортировка. Реализация алгоритма QuickSort.

Как работает быстрая сортировка, разбор и реализация алгоритма.

источник

👉@BookJava
👍5
Какие возможности Spring предоставляет для коммуникации с базой данных?

Spring предоставляет мощный набор инструментов для работы с базами данных. Ниже перечислены некоторые из них:

🔹Spring JDBC: Абстракции над JDBC (Java Database Connectivity), что упрощает взаимодействие с базой данных через простые API.

🔹Spring Data JPA: Spring абстракция над JPA (Java Persistence API) и упрощает взаимодействие с объектно-реляционными базами данных (ORM).

🔹 Spring ORM: Spring ORM интегрирует ORM-фреймворки, такие как Hibernate, с Spring Framework. Он обеспечивает удобную интеграцию между Spring и ORM-фреймворками, предоставляя возможности управления транзакциями, упрощенный доступ к данным и возможности кэширования.

🔹Spring Data JDBC: Альтернативный подход к доступу к данным с использованием JDBC. В отличие от ORM, Spring Data JDBC предлагает простую и прямолинейную модель доступа к данным без использования объектно-реляционного отображения (ORM).

🔹Spring Transactions: Spring предоставляет механизм управления транзакциями для работы с базами данных. Он позволяет объявлять транзакции с помощью аннотаций или XML-конфигурации.

🔹Spring Batch: Spring Batch предоставляет возможности для пакетной обработки данных, включая чтение, обработку и запись данных в базу данных.

👉@BookJava
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
IntelliJ IDEA EAP обеспечивает навигацию по журналам именно в том месте, где было зарегистрировано сообщение!

https://blog.jetbrains.com/idea/2024/02/intellij-idea-2024-1-eap-6/

👉 @BookJava
👍4🤡3💩1🥴1
Media is too big
VIEW IN TELEGRAM
🚀 Совет по Spring 🚀

Тестовые библиотеки Spring Boot (Testjars) 🔥

Привет, поклонники Spring! В этом выпуске мы рассмотрим новый проект Spring Boot Testjars, который значительно упрощает создание и повторное использование вспомогательных сервисов на базе Java, таких как микросервисы на основе Spring Boot или инфраструктурные компоненты, например, Spring Authorization Server.

источник

👉@BookJava
👍4
Шпаргалка по Java

👉@BookJava
👍6🔥3
💡Совет по Java: Если в Java Map нужно хранить несколько значений для одного ключа, используйте Apache Commons MultiValuedMap.

Если нужно хранить несколько значений для одного ключа в Map, можно использовать MultiValuedMap:
- List для дублирующихся значений (с повторениями).
- Set для уникальных значений (без дубликатов).

Пример кода:
1. ArrayListValuedHashMap – значения хранятся в списке (допускаются дубликаты):

MultiValuedMap<Integer, String> listMap = new ArrayListValuedHashMap<>();
listMap.put(1, "A");
listMap.put(1, "A");
listMap.put(1, "B");
listMap.put(1, "C");
Collection<String> values = listMap.get(1);
// values = ["A", "A", "B", "C"]


2. HashSetValuedHashMap – значения хранятся в множестве (дубликаты не допускаются):

MultiValuedMap<Integer, String> listMap = new HashSetValuedHashMap<>();
listMap.put(1, "A");
listMap.put(1, "A");
listMap.put(1, "B");
listMap.put(1, "C");
Collection<String> values = listMap.get(1);
// values = ["A", "B", "C"]


MultiValuedMap – удобное решение, чтобы избежать ручного управления коллекциями значений для одного ключа. Можно легко переключаться между List и Set реализациями в зависимости от задачи.

👉@BookJava
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3👎2
Совет 💡

Обычно при сортировке в Spring Data мы указываем свойство, по которому хотим отсортировать, как строку. Однако существует класс TypedSort, который дает нам возможность передавать функцию в качестве параметра для сортировки. Это повышает безопасность типов в нашем коде.

👉@BookJava
👍8
Создаём CRUD REST API в Spring Boot быстро и просто вместе с Amplicode

Статья демонстрирует, как с помощью инструмента Amplicode эффективно создавать REST-контроллеры в приложениях на Spring Boot. Автор показывает процесс генерации CRUD-методов (создание, чтение, обновление, удаление) и делегирования существующих методов в контроллер, что упрощает разработку API. Приводятся практические примеры и рекомендации по использованию Amplicode для ускорения разработки и повышения качества кода.

https://habr.com/ru/companies/haulmont/articles/866060/

👉@BookJava
👍5
Что выведет код?


public class Main {
public static final int END = Integer.MAX_VALUE;
public static final int START = END - 100;

public static void main(String[] args) {
int count = 0;
for (int i = START; i <= END; i++) count++;
System.out.println(count);
}
}


👉@BookJava
💯7👍2
Совет по Spring Boot 💡

Вы думаете о замене 🍃`RestTemplate` на новый Spring `RestClient`? Конфигурация SSL очень проста благодаря поддержке 🔐`SslBundles` через интерфейс `RestClientSsl` 👆

👉@BookJava
👍4
Media is too big
VIEW IN TELEGRAM
Java. Префиксное дерево. Основные операции, сохранение в файл, практическое применение.

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

00:00 - Вступление
00:26 - Применение в приложении
01:58 - Построение дерева и операции с ним
06:33 - Построение префиксного дерева на Java
11:22 - Операции с префиксным деревом на Java
16:31 - Сохранение дерева в файл
20:51 - Загрузка дерева из файла
25:32 - Экономия по сравнению со списком
27:12 - Замечание о Null-безопасности
28:26 - Заключение

источник

👉@BookJava
👍2
Пишем игру на Java - Клон Танков. Часть 1

Вступление
Создаем Окно - [1]
Да будет цвет - [2]
Изображения (теория) - [3]
Улучшаем графику - [4]
Мульти Буферизацыя - [5]

👉@BookJava
👍51