Sobes.tech
Junior — Middle

Πώς μπορεί να διασφαλιστεί η αυτόματη απελευθέρωση πόρων σε ένα πρόγραμμα;

sobes.tech AI

Απάντηση από AI

Στην Java, η αυτόματη απελευθέρωση πόρων συνήθως διασφαλίζεται με τη δομή try-with-resources, η οποία εισήχθη στην Java 7. Επιτρέπει το αυτόματο κλείσιμο πόρων που υλοποιούν τη διεπαφή AutoCloseable (π.χ., ροές εισόδου/εξόδου, συνδέσεις βάσεων δεδομένων κ.λπ.) μετά το τέλος του μπλοκ try, ακόμη και αν προκύψει εξαίρεση μέσα στο μπλοκ.

Παράδειγμα:

try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
    String line = reader.readLine();
    System.out.println(line);
} catch (IOException e) {
    e.printStackTrace();
}
// το reader κλείνει αυτόματα εδώ

Παλαιότερα, για την απελευθέρωση πόρων, χρησιμοποιούσαν το μπλοκ finally, όπου καλούσαν ρητά τη μέθοδο close(). Αλλά το try-with-resources κάνει τον κώδικα πιο καθαρό και ασφαλή.