Easy Java
5.22K subscribers
311 photos
51 videos
463 links
Лучшие обучающие материалы и другие полезности для Java-разработчиков.

Сотрудничество: @heywan_n1

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+r8kkGSypBY84MmIy
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Ответ?
Anonymous Quiz
13%
1
10%
2
70%
3
7%
4
👩‍💻 Что такое try-with-resources в Java и зачем он нужен?

try-with-resources — это конструкция, которая автоматически закрывает ресурсы (например, файлы, потоки), когда они больше не нужны. Она работает с любыми объектами, реализующими интерфейс AutoCloseable.

Не нужно вручную вызывать close() — Java сама закроет ресурс даже при исключении. Это делает код чище и безопаснее.


• Автоматически закрывает ресурсы
• Защищает от утечек памяти
• Упрощает работу с I/O и JDBC

⚡️ Пример:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Main {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
System.out.println(reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}


👀 try-with-resources особенно полезен при работе с файлами, сетевыми соединениями, базами данных и любыми ресурсами, которые нужно явно закрывать.


➡️ Easy Java | #Теория
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥4
📖 Почему java -jar игнорирует твой -cp и как это обойти

Когда java -jar цинично игнорирует ваш -cp, хочется грустить, но спокойствие, сегодня рассмотрим, почему так происходит и как это обойти.

Читать статью

➡️ Easy Java | #Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩5👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27😁155🤔3🤣1😭1
Вопрос с собеса

Что произойдёт, если в конструкторе выбросить исключение?

Пример🔽
public class Main {
public static void main(String[] args) {
try {
new User();
} catch (RuntimeException e) {
System.out.println("Исключение поймано: " + e.getMessage());
}
}
}

class User {
public User() {
System.out.println("Конструктор вызван");
throw new RuntimeException("Ошибка при создании объекта");
}
}


Ответ🔽
Если конструктор выбрасывает исключение, объект не будет создан. Сборщик мусора может вызвать finalize(), если он переопределён, но ссылку на объект получить невозможно.

📌 Это важно при работе с зависимостями, особенно если конструктор делает что-то кроме инициализации (например, открывает соединения или файлы).


➡️ Easy Java | #Собес
Please open Telegram to view this post
VIEW IN TELEGRAM
14🤯2
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ:
Anonymous Quiz
54%
1
11%
2
15%
3
20%
4
11😭4🤔2😎1
👩‍💻 Что такое default-методы в интерфейсах Java и зачем они нужны?

default-методы позволяют определять реализацию методов прямо в интерфейсах. Это решает проблему, когда нужно добавить новый метод в интерфейс, не ломая все его реализации.

С помощью default можно добавлять поведение без необходимости переписывать существующие классы.


• Позволяют расширять интерфейсы без потери совместимости
• Уменьшают дублирование кода
• Упрощают поддержку библиотек и API

⚡️ Пример:

interface Greeter {
default void greet() {
System.out.println("Hello from interface!");
}
}

public class Main implements Greeter {
public static void main(String[] args) {
new Main().greet(); // ➔ Hello from interface!
}
}


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


➡️ Easy Java | #Теория
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥4
📖 Семантический поиск по статьям Хабра в PostgreSQL + индексация текстов LLM в Ollama

Я собрал систему, которая сама читает статьи с Хабра, вытаскивает из них суть с помощью локальной LLM и ищет похожие по смыслу, а не по ключевым словам.

Читать статью

➡️ Easy Java | #Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁31🔥43
Вопрос с собеса

Можно ли перегрузить методы с varargs и как выбирается нужный?

Пример🔽
public class Main {
public static void main(String[] args) {
print(1); // ➔ Один int
print(1, 2); // ➔ Массив int
}

static void print(int a) {
System.out.println("Один int");
}

static void print(int... nums) {
System.out.println("Массив int");
}
}


Ответ🔽
Да, метод с varargs можно перегрузить. При этом, если аргументы точно подходят под метод без ..., вызывается он. Только если подходящего точного метода нет — выбирается varargs.

📌 Важно: если вызвать print() без аргументов, сработает print(int... nums). Это может вести к неоднозначности при наличии других перегрузок.


➡️ Easy Java | #Собес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ:
Anonymous Quiz
45%
1
13%
2
36%
3
6%
4
👩‍💻 Что такое static-импорт в Java и зачем он нужен?

Static import позволяет импортировать статические члены классов (методы, поля, enum-константы) напрямую, без указания имени класса. Это делает код короче и читаемее, особенно при работе с утилитами и математикой.

Он полезен, когда ты часто используешь одни и те же статические методы или поля — например, Math.*, Assertions.*, Collectors.*.


• Упрощает вызовы утилит
• Повышает читаемость
• Удобен при написании тестов и DSL

⚡️ Пример:

import static java.lang.Math.*;

public class Main {
public static void main(String[] args) {
double r = 5;
double area = PI * pow(r, 2); // вместо Math.PI и Math.pow
System.out.println("Площадь круга: " + area);
}
}


👀 static-импорт особенно удобен в тестах (assertEquals, assertTrue), при работе с Collectors, TimeUnit, ChronoUnit, и других утилитах, где важно писать чистый и декларативный код.


➡️ Easy Java | #Теория
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
📖 DevOps Tutorials — Ansible: разворачиваем веб-приложение на виртуальном сервере

В этой статье мы научимся разворачивать Angular+Java веб-приложение на виртуальном сервере Ubuntu Linux с помощью Ansible.

Читать статью

➡️ Easy Java | #Статья
Please open Telegram to view this post
VIEW IN TELEGRAM