Heim  >  Artikel  >  Java  >  Eine kurze Einführung in die erweiterte Try-Anweisung von Java7 zum Schließen von Ressourcen

Eine kurze Einführung in die erweiterte Try-Anweisung von Java7 zum Schließen von Ressourcen

黄舟
黄舟Original
2017-06-04 09:11:401202Durchsuche

Der unten stehende Herausgeber bringt Ihnen einen Artikel über die erweiterte try-Anweisung von Java7 zum Schließen von Ressourcen. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen

Java7 erweiterte Try-Anweisung zum Schließen von Ressourcen

Traditionelle Methode zum Schließen von Ressourcen

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

class Student implements Serializable {
  private String name;

  public Student(String name) {
    this.name = name;
  }
}

public class test2 {
  public static void main(String[] args) throws Exception {
    Student s = new Student("WJY");
    Student s2 = null;
    ObjectOutputStream oos = null;
    ObjectInputStream ois = null;
    try {
      //创建对象输出流
      oos = new ObjectOutputStream(new FileOutputStream("b.bin"));
      //创建对象输入流
      ois = new ObjectInputStream(new FileInputStream("b.bin"));
      //序列化java对象
      oos.writeObject(s);
      oos.flush();
      //反序列化java对象
      s2 = (Student) ois.readObject();
    } finally { //使用finally块回收资源
      if (oos != null) {
        try {
          oos.close();
        } catch (Exception ex) {
          ex.printStackTrace();
        }
      }
      if (ois != null) {
        try {
          ois.close();
        } catch (Exception ex) {
          ex.printStackTrace();
        }
      }
    }
  }
}

Verwenden Sie den Block „finally“, um physische Ressourcen zu schließen und sicherzustellen, dass der Vorgang zum Herunterfahren immer ausgeführt wird.

Bevor Sie jede Ressource schließen, stellen Sie zunächst sicher, dass die Referenz der Referenzvariablen der Ressource nicht null ist.

Verwenden Sie für jede physische Ressource einen separaten try...catch-Block, um die Ressource zu schließen und sicherzustellen, dass beim Schließen der Ressource verursachte Ausnahmen keine Auswirkungen auf das Schließen anderer Ressourcen haben.

Durch die obige Methode wird der Final-Block-Code sehr aufgebläht und die Lesbarkeit des Programms verringert.

Java7 erweiterte Try-Anweisung zum Schließen von Ressourcen

Um das Problem des Hochladens auf herkömmliche Weise zu lösen Frage , Java7hinzugefügteine try-Anweisung, die Ressourcen automatisch schließt. Es ermöglicht, dass auf ein Klammerpaar das Schlüsselwort try folgt, in dem eine oder mehrere Ressourcen deklariert und initialisiert werden können. Die Ressourcen beziehen sich hier auf diejenigen Ressourcen, die beim Beenden des Programms explizit geschlossen werden müssen (Datenbankverbindungen, Netzwerkverbindungen usw.). .) schließt die try-Anweisung diese Ressourcen automatisch am Ende der Anweisung.

Eine Try-Anweisung, die eine Ressource automatisch schließt, entspricht dem Einschließen eines impliziten Final-Blocks (der zum Schließen der Ressource verwendet wird). Daher kann diese Try-Anweisung weder einen Catch-Block noch einen Final-Block haben.
public class test2 {
  public static void main(String[] args) throws Exception {
    Student s = new Student("WJY");
    Student s2 = null;
    try (//创建对象输出流
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("b.bin"));
        //创建对象输入流
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("b.bin"));
    )
  {
      //序列化java对象
      oos.writeObject(s);
      oos.flush();
      //反序列化java对象
      s2 = (Student) ois.readObject();
    }

  }
}

Hinweis: Die Ressource, die automatisch geschlossen wird, muss die Closeable- oder AutoCloseable

Schnittstelle

implementieren. (Closeable ist eine Unterschnittstelle von AutoCloseable. Die Methodenanweisung close() in der Schnittstelle Closeeable löst eine IOException aus; die Methodenanweisung close() in der Schnittstelle AutoCloseable löst eine Ausnahme aus.) Die geschlossene Ressource muss platziert werden Wird nach der try-Anweisung in Klammern deklariert und initialisiert. Wenn das Programm über eine Try-Anweisung verfügt, die Ressourcen automatisch schließen muss, kann sie mehrere Catch-Blöcke und einen Final-Block enthalten.

Java7 hat fast alle „Ressourcenklassen“ neu geschrieben (einschließlich verschiedener Klassen von Datei-IO, JDBC

Programmierung

Verbindung, Anweisung und anderen Schnittstellen ...), und die neu geschriebenen Ressourcenklassen implementieren alle AutoCloseable- oder Closeable-Schnittstelle

Das obige ist der detaillierte Inhalt vonEine kurze Einführung in die erweiterte Try-Anweisung von Java7 zum Schließen von Ressourcen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn