Rumah  >  Artikel  >  Java  >  Perbezaan antara final, finally, dan finalize di Jawa

Perbezaan antara final, finally, dan finalize di Jawa

王林
王林asal
2024-02-19 12:16:221226semak imbas

Perbezaan antara final, finally, dan finalize di Jawa

Perbezaan antara akhir, akhirnya, dan memuktamadkan Java memerlukan contoh kod tertentu dalam pengaturcaraan Java, anda sering menemui tiga kata kunci, akhirnya, dan memuktamadkan dan penggunaan. Artikel ini akan menerangkan perbezaan antara ketiga-tiga kata kunci ini secara terperinci dan memberikan contoh kod untuk membantu pembaca memahami dengan lebih baik.

1. Kata kunci akhir

Kata kunci akhir boleh digunakan untuk kelas, kaedah dan pembolehubah. Fungsinya adalah untuk menjadikan kelas, kaedah atau pembolehubah yang diubah suai tidak berubah.


Kelas akhir:
    Kelas diubah suai akhir bermakna kelas itu tidak boleh diwarisi, iaitu subkelasnya tidak boleh wujud.

  1. Contoh kod:
final class A {
    // class implementation
}

// 以下代码会报错,无法继承final类A
class B extends A {
    // class implementation
}

kaedah akhir:
    Kaedah diubah suai akhir bermakna kaedah tidak boleh ditindih oleh subkelas.

  1. Kod contoh:
class A {
    final void foo() {
        // method implementation
    }
}

class B extends A {
    @Override
    void foo(){  //以下代码会报错,无法重写final方法
        // method implementation
    }
}

pembolehubah akhir:
    pembolehubah diubah suai akhir bermaksud nilai pembolehubah tidak boleh diubah, iaitu ia adalah pemalar. Pembolehubah akhir boleh dimulakan apabila diisytiharkan atau dalam pembina.

  1. Contoh kod:
class A {
    final int x = 10;  //声明时初始化
    
    final int y;
    A(){
        y = 20;  //在构造方法中初始化
    }
}

class B {
    void foo() {
        final int z = 30;  //局部变量,必须在声明时初始化
        // method implementation
    }
}

2. Kata kunci akhirnya

Kata kunci akhirnya sering digunakan dalam blok pernyataan try-catch-finally untuk memastikan kod dalam blok akhirnya akan dilaksanakan tanpa mengira sama ada pengecualian berlaku. Blok akhirnya biasanya digunakan untuk melepaskan sumber atau melakukan beberapa kerja pembersihan yang diperlukan.


Contoh kod:

try {
    // 可能发生异常的代码
}
catch (Exception e) {
    // 异常处理逻辑
}
finally {
    // 最终执行的代码,无论是否发生异常,都会执行
    // 释放资源或者其他清理工作
}

3. Kaedah finalize

Kaedah finalize() ialah kaedah kutipan sampah sesuatu objek Pengumpul sampah akan memanggil kaedah ini sebelum objek dikitar semula oleh pengumpul sampah. Kaedah ini biasanya digunakan untuk melepaskan sumber asas yang berkaitan dengan objek. Walau bagaimanapun, kaedah finalize() tidak menjamin pelaksanaan tepat pada masanya, jadi tidak disyorkan untuk menggunakan kaedah ini untuk mengeluarkan sumber penting.


Kod contoh:

class A {
    // 对象的垃圾回收方法
    protected void finalize() throws Throwable {
        // 释放与对象相关的底层资源
        super.finalize();
    }
}

public static void main(String[] args) {
    A obj = new A();
    obj = null;  // 将对象置为null,让垃圾回收器回收
    System.gc();  // 手动触发垃圾回收
}

Ringkasnya, tiga kata kunci muktamad, akhirnya dan memuktamadkan mempunyai makna dan penggunaan yang berbeza di Jawa. final digunakan untuk mengubah suai kelas, kaedah dan pembolehubah, yang menunjukkan bahawa ia tidak boleh diubah akhirnya digunakan dalam blok pernyataan try-catch-finally untuk memastikan bahawa kod di dalamnya akan dilaksanakan tanpa mengira sama ada kaedah finalize(). ialah pengumpulan sampah kaedah objek, dipanggil sebelum objek dikitar semula. Memahami perbezaannya dan penggunaan yang betul sangat membantu untuk menulis kod Java berkualiti tinggi dan mudah diselenggara.

Atas ialah kandungan terperinci Perbezaan antara final, finally, dan finalize di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn