Java | Фишки и трюки
7.21K subscribers
182 photos
29 videos
6 files
40 links
Java: примеры кода, интересные фишки и полезные трюки

Купить рекламу: https://telega.in/c/java_tips_and_tricks

✍️По всем вопросам: @Pascal4eg
Download Telegram
⌨️ Интерфейсы Closeable и AutoCloseable

Интерфейсы Closeable и AutoCloseable предназначены для управления ресурсами, которые нужно явно закрывать после использования, например, потоки ввода-вывода, соединения с базами данных и т. д. Однако у них есть некоторые различия.

1️⃣ AutoCloseable появился в Java 7 в связи с введением try-with-resources, это базовый интерфейс для всех ресурсов, которые могут быть автоматически закрыты.

В AutoCloseable определен метод:

void close() throws Exception;

То есть, метод close() может выбрасывать любое исключение (Exception).

2️⃣ Closeable наследует AutoCloseable, более специфичен и предназначен в основном для потоков ввода-вывода (I/O).

В Closeable метод close() может выбрасывать только IOException.

#java #Closeable #AutoCloseable
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
🛠 Object.finalize() устарел! Как правильно освобождать ресурсы?

Метод finalize() объявлен устаревшим в Java 9 и удалён в Java 18, так как он ненадёжный и медленный.

📌 Как освобождать ресурсы правильно?

🟢 Используйте try-with-resources для Closeable объектов:
try (FileInputStream fis = new FileInputStream("file.txt")) {
// Работа с файлом
}


🟢 Для кастомных классов используйте AutoCloseable:
class MyResource implements AutoCloseable {
@Override
public void close() {
System.out.println("Ресурс закрыт");
}
}


💡 Совет: Если ваш объект использует ресурсы (файлы, сокеты, соединения) – реализуйте AutoCloseable.

#java #finalize #autocloseable
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121