java 7強化のtry文については、リソースをクローズします。
java 7強化のtry文は資源をクローズします。
従来のクローズリソース方式
各リソースを閉じる前に、まずこのリソースの参照変数がnullでないことを保証します。
各物理リソースのために個別のtry...catchブロックを使用してリソースをクローズし、リソースを閉じる際に生じる異常が他のリソースのクローズに影響しないことを保証する。
以上の方式はfinallyブロックコードが非常に肥大し、プログラムの可読性が低下します。
java 7強化のtry文は資源をクローズします。
以上の従来方式の問題を解決するために、Java 7は自動的にリソースを閉じるtry文を追加しました。これは、tryキーの後に、ペアの括弧に続くことができます。ここでは、1つまたは複数のリソースを宣言、初期化できます。ここでのリソースとは、プログラムが終了したときに閉じられているリソース(データベース接続、ネットワーク接続など)を表示しなければならないということです。try文は、終了時に自動的にこれらのリソースを閉じます。
注意:
自動的にクローズされたリソースは、Close bleまたはAutoCloseableインターフェースを実現する必要があります。ClooseableはAutoClose bleのサブインターフェースであり、Close ableインターフェースの中のclose()方法声明はIOExceptionを投げました。AutoCloseableインターフェースのclose()メソッド宣言はExceptionを投げました。
閉じられたリソースはtry文の後の括弧に入れて宣言し、初期化しなければなりません。プログラムがリソースを自動的に閉じるために必要なtry文があれば、複数のcatchブロックと一つのfinallyブロックを持つことができます。
Java 7はほとんどすべての「資源類」(ファイルIOの各種類、JDBCプログラミングのConnection、Sttementなどのインターフェースを含む)を書き換えて、書き換えた後の資源類はAutoClose bleまたはClose bleインターフェースを実現しました。
以上のような浅談java 7の強化されたtry文の資源を閉じるということは、小編集が皆さんに提供した内容の全部を共有します。
従来のクローズリソース方式
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();
}
}
}
}
}
物理リソースを閉じるためにfinallyブロックを使用して、いつもクローズ動作が実行されることを保証します。各リソースを閉じる前に、まずこのリソースの参照変数がnullでないことを保証します。
各物理リソースのために個別のtry...catchブロックを使用してリソースをクローズし、リソースを閉じる際に生じる異常が他のリソースのクローズに影響しないことを保証する。
以上の方式はfinallyブロックコードが非常に肥大し、プログラムの可読性が低下します。
java 7強化のtry文は資源をクローズします。
以上の従来方式の問題を解決するために、Java 7は自動的にリソースを閉じるtry文を追加しました。これは、tryキーの後に、ペアの括弧に続くことができます。ここでは、1つまたは複数のリソースを宣言、初期化できます。ここでのリソースとは、プログラムが終了したときに閉じられているリソース(データベース接続、ネットワーク接続など)を表示しなければならないということです。try文は、終了時に自動的にこれらのリソースを閉じます。
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();
}
}
}
リソースを自動的に閉じるtry文は、暗黙的なfinallyブロック(リソースを閉じるための)を含むことに相当するので、このtry文は、catchブロックもfinallyブロックもないことができる。注意:
自動的にクローズされたリソースは、Close bleまたはAutoCloseableインターフェースを実現する必要があります。ClooseableはAutoClose bleのサブインターフェースであり、Close ableインターフェースの中のclose()方法声明はIOExceptionを投げました。AutoCloseableインターフェースのclose()メソッド宣言はExceptionを投げました。
閉じられたリソースはtry文の後の括弧に入れて宣言し、初期化しなければなりません。プログラムがリソースを自動的に閉じるために必要なtry文があれば、複数のcatchブロックと一つのfinallyブロックを持つことができます。
Java 7はほとんどすべての「資源類」(ファイルIOの各種類、JDBCプログラミングのConnection、Sttementなどのインターフェースを含む)を書き換えて、書き換えた後の資源類はAutoClose bleまたはClose bleインターフェースを実現しました。
以上のような浅談java 7の強化されたtry文の資源を閉じるということは、小編集が皆さんに提供した内容の全部を共有します。