Java Portal | Программирование
12.9K subscribers
1.21K photos
101 videos
37 files
1.15K links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
33🔥11👍4🤣2🏆1
Spring Boot: чтобы при сериализации в Jackson исключать любые поля, у которых значение null, можно использовать аннотацию @JsonInclude(Include.NON_NULL)

@JsonInclude(JsonInclude.Include.NON_NULL)
public class UserDTO {

private Long id;
private String name;
private String email;
private String phone;

...
}


Все пустые поля исключаются автоматически.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🤔2
Шпаргалка по разрядам чисел, максимальным и минимальным значениям

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53
Spring Boot: на этапе разработки используй spring.main.lazy-initialization=true, чтобы ускорить старт приложения.

По умолчанию Spring Boot жадно инициализирует все бины на старте. В дев-окружении это значит:

1. Дольше стартует, особенно в больших проектах
2. Приходится ждать загрузки бинов, которые тебе прямо сейчас не нужны

Чтобы этого избежать, в application.properties поставь:

spring.main.lazy-initialization=true


Но в проде важно оставить дефолтное поведение, потому что:

1. Ошибки старта ловятся раньше
2. Все компоненты сразу готовы принимать запросы

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
This media is not supported in your browser
VIEW IN TELEGRAM
Сommand completion (..) расширяет обычный code completion. Помимо автодополнения API и postfix completion, автодополнение кода теперь включает и команды. Чтобы отфильтровать список только до команд, используйте .. Список поддерживает поиск, чтобы быстрее находить нужное.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Java tip : старайся не шарить данные между потоками.

Используй immutable-объекты
Или пусть потоки общаются сообщениями, не лезя напрямую в общий state и не мутируя его

// With immutable objects:

record Book(String title, int price) {} //Immutable

public class BookJob implements Runnable {
private final Book book;
....//constructor

@Override
public void run() {
System.out.println(book.title() + " " + book.price());
}
}

// Exchanging messages:
...
new Thread(() -> {
try {
queue.put("mess1");
} catch (InterruptedException e) {}
}).start();
...
new Thread(() -> {
try {
String mess = queue.take();
} catch (InterruptedException e) {}
}).start();


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
10 золотых правил чистого кода:

1. Избегай магических чисел и строк
2. Используй осмысленные, говорящие имена
3. Предпочитай ранние return вместо глубокой вложенности
4. Избегай длинных списков параметров
5. Делай функции маленькими и сфокусированными
6. Соблюдай DRY (Don’t Repeat Yourself) — не дублируй код
7. Применяй принцип KISS (Keep It Simple, Stupid) — делай проще
8. Отдавай предпочтение композиции, а не наследованию
9. Комментируй только там, где это действительно необходимо
10. Пиши хорошие сообщения к коммитам

Какие еще правила чистого кода ты бы добавил в этот список?

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥5
Совет по Java: если нужна максимально хорошая производительность в общем случае, бери HashMap как реализацию Map.

HashMap внутри реализован как хеш-таблица, и в среднем put(), get() и remove() работают за O(1).

🪲Он не потокобезопасный (если нужна thread-safety, используй ConcurrentHashMap).

Пример:

Map<String, Integer> ages = new HashMap<>();

// Добавляем данные
ages.put("Michael", 31);
ages.put("Lisa", 25);
ages.put("Alice", 42);

// Поиск
System.out.println("Возраст Lisa: " + ages.get("Lisa"));

// Удаление
ages.remove("Alice");

// Итерация
for (Map.Entry<String, Integer> entry : ages.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94💊1
На Stepik вышел курс по Linux

Этот курс закрывает всю обязательную Linux-базу для работы в IT: от установки Linux и работы с файлами до сетей, прав, дисков, процессов, автоматизации на Bash и многого другого. Всё сразу закрепляется на практике (200+ заданий с автопроверкой)

Материал подаётся понятным языком, шаг за шагом, на реальных примерах и с наглядными схемами

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

Есть бесплатные демо-уроки для ознакомления. В ближайшие 48ч курс доступен со скидкой 25% по промокоду «POST25»: открыть курс на Stepik
2
This media is not supported in your browser
VIEW IN TELEGRAM
Если ты изучаешь Java или хочешь прокачать навыки, обрати внимание на JBook — это интерактивная книга по Java, доступная прямо на GitHub.

Что внутри:

🔸Подробное объяснение основ языка Java;
🔸Примеры кода с пояснениями;
🔸Упражнения для закрепления знаний;
🔸Поддержка Jupyter Notebook + Java (IJava kernel) — можно запускать код прямо в браузере

GitHub: https://github.com/qcha/JBook

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥4
Java-совет: начиная с Java 14 можно использовать switch-выражения, чтобы писать многоветвистую логику короче и чище.

// Old way:
String season;
switch (month) {
case 12:
case 1:
case 2:
season = "Winter";
break;

case 3:
case 4:
case 5:
season = "Spring";
break;

default:
season = "Invalid";
}


// New switch expression:
String season = switch (month) {
case 12, 1, 2 -> "Winter";
case 3, 4, 5 -> "Spring";
default -> "Invalid";
};


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍126