Java библиотека
31.6K subscribers
2.34K photos
87 videos
9 files
2.15K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
🖥 Tika — набор инструментов на Java для извлечения текста и метаданных из PPT, XLS и PDF и многих других типов данных

Tika можно использовать как компонент индексации в поисковых системах, в системах, связанных с переводом и во многих других приложениях

🖥 GitHub
🟡 Wiki

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥21
Как маппить объекты

Часто приходится конвертировать Entity -> DTO или DTO -> Model. Вот основные способы, как это сделать.

1️⃣ Ручной маппинг

Простой, но не очень масштабируемый.
public class UserMapper {
public static UserDto toDto(User user) {
return new UserDto(user.getId(), user.getName());
}

public static User toEntity(UserDto dto) {
return new User(dto.getId(), dto.getName());
}
}


2️⃣ MapStruct

Генерирует код на этапе компиляции → быстрее, чем рефлексия.
@Mapper
public interface UserMapper {
UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);

UserDto toDto(User user);
User toEntity(UserDto dto);
}


3️⃣ ModelMapper

Просто, но медленнее из-за рефлексии.
ModelMapper modelMapper = new ModelMapper();
UserDto dto = modelMapper.map(user, UserDto.class);


4️⃣ Record + Java 17

Используем record вместо классов DTO для упрощения кода.
record UserDto(Long id, String name) {}

UserDto dto = new UserDto(user.getId(), user.getName());


5️⃣ Stream API для маппинга коллекций

Если нужно преобразовать список объектов.
List<UserDto> dtos = users.stream()
.map(UserMapper::toDto)
.collect(Collectors.toList());


Какой способ используете в проектах?

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥94
Forwarded from Java News
JForge: Создаем свою мини-IDE на Java Swing с нуля (с темной темой и подсветкой синтаксиса!)

Каждый из нас, Java-разработчиков, хоть раз задумывался: "А что, если взять и написать свою IDE?". Ну, может, не полноценную замену IntelliJ IDEA, но что-то компактное, для души, для изучения Swing или просто для фана. Сегодня я хочу поделиться именно таким проектом – JForge, простой IDE для Java, написанной полностью на Swing, с акцентом на приятный темный интерфейс и базовые, но необходимые фичи.

Читать статью
👍84🔥3
🧑‍💻 Универсальный инструмент рефакторинга в IntelliJ IDEA

Знакомы с отдельными сочетаниями клавиш для рефакторинга, такими как Shift + F6 или Ctrl + Alt + V?
Сочетание Ctrl + Alt + Shift + T открывает перед вами целый спектр возможностей рефакторинга в одном окне.

🟢Зачем это нужно

— Открывает меню, предоставляющее доступ к различным видам рефакторинга, таким как переименование, перемещение, изменение сигнатуры, извлечение метода, переменной, константы и другие. ​
— В зависимости от выделенного фрагмента, IntelliJ IDEA предложит только те варианты рефакторинга, которые применимы к текущему элементу кода.​

🟢Как использовать

1. Выделите часть кода, которую хотите рефакторить (например, переменную, метод или класс).​
2. Нажмите Ctrl + Alt + Shift + T.​
3. Выберите необходимый тип рефакторинга из появившегося меню с помощью стрелок → Enter.​
4. Следуйте дальнейшим инструкциям IDE для завершения процесса рефакторинга.​

Знали о таком?

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥64
🖥 Git-команда для особого случая

Случайно удалили ветку, а в ней была недоделанная фича или рабочий хотфикс? Паника близко?

💡 Команда спасения
git reflog


📌 Что делает

Показывает историю всех действий в Git — коммиты, переключения веток, ребейзы и даже force-push’и. Идеально, чтобы вернуть ветку из забвения или откатиться на стабильное состояние.

Например:
git checkout -b restore-branch HEAD@{3}

Создаёт новую ветку с того момента, где были 3 действия назад.

Использовали раньше?

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥318👍7
🖥 fastjson2 — очень быстрая библиотека Java для работы с JSON

<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.51</version>
</dependency>


Особенности fastjson2:

— скорость работы fastjson2 намного больше, чем у других популярных JSON библиотек, включая jackson/gson/org.json, бенчмарки тут

— fastjson2 поддерживает новые возможностей JDK, включая JDK 11/JDK 17, имеется поддержка Record, поддержка GraalVM Native-Image

— fastjson2 поддерживает JSONPath, поддерживает синтаксис SQL:2016 JSONPath

🟡 Доки
🖥 GitHub

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍194🔥3
Media is too big
VIEW IN TELEGRAM
🖥 Изучаешь Java - создай проект. Перезагрузка.

Выпуск 4. Делаем начальный вариант ГРН на Spring Boot.

В
этом выпуске мы посмотрим, как просто можно сформировать начальный вариант web-приложения на Spring Boot.

🌐🗣СМОТРЕТЬ VKVIDEO

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥2
Предположим, есть метод, который может выбросить IOException и FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?

Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).

Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍183🔥3
Лайфхаки визуального сторителлинга 😉

Рассказываем, почему это полезно и как его построить, чтобы было понятно всем: и менеджерам, и разработчикам, и дизайнерам

И да, вы справитесь, даже если не умеете рисовать! Александр Зинченко, СТО Яндекс 360, поделился инструментами для быстрых и удобных скетчей. А ещё рассказал про сложности передачи идей в проектных командах, которые можно решить с помощью визуального сторителлинга 😎

Больше интересной и полезной информации в канале от команды Яндекс 360
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥2
🖥 Fixture Monkey — инструмент на Java для автоматической генерации объектов для тестов

<dependency>
<groupId>com.navercorp.fixturemonkey</groupId>
<artifactId>fixture-monkey-starter</artifactId>
<version>1.0.20</version>
<scope>test</scope>
</dependency>


Fixture Monkey позволяет упростить написание тестов, облегчая генерацию необходимых тестовых объектов.
При этом можно повторно использовать одни и те же конфигурации объектов в нескольких тестах.

🖥 GitHub
🟡 Доки

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥2😁1
charBuffer

Метод charBuffer() используется для получения буфера символов из строки. Он принадлежит java.nio.

Этот метод возвращает объект CharBuffer, который представляет последовательность символов строки.
CharBuffer позволяет эффективно читать и манипулировать символами строки без создания копий.

В этом примере создается строка «Hello». Затем из этой строки получаем буфер символов методом charBuffer().
В цикле посимвольно читаем из буфера символы и выводим их на экран.


Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🔥3