Rumah Java javaTutorial Perbezaan antara final, finally, dan finalize di Jawa

Perbezaan antara final, finally, dan finalize di Jawa

Feb 19, 2024 pm 12:16 PM
final finalize finally Pengumpul sampah Penjelasan kata kunci:

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
}
Salin selepas log masuk

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
    }
}
Salin selepas log masuk

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
    }
}
Salin selepas log masuk

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 {
    // 最终执行的代码,无论是否发生异常,都会执行
    // 释放资源或者其他清理工作
}
Salin selepas log masuk

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();  // 手动触发垃圾回收
}
Salin selepas log masuk

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 Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kenapa golang cepat tersusun? Kenapa golang cepat tersusun? Apr 21, 2024 am 01:25 AM

Go mempunyai kelebihan penyusunan pantas kerana faktor seperti kompilasi selari, kompilasi tambahan, sintaks mudah, struktur data yang cekap, pengepala prapengumpulan, pengumpulan sampah dan pengoptimuman lain.

Go penjejakan kebocoran memori: Panduan praktikal Go pprof Go penjejakan kebocoran memori: Panduan praktikal Go pprof Apr 08, 2024 am 10:57 AM

Alat pprof boleh digunakan untuk menganalisis penggunaan memori aplikasi Go dan mengesan kebocoran memori. Ia menyediakan penjanaan profil memori, pengenalan kebocoran memori dan keupayaan analisis masa nyata. Hasilkan petikan memori dengan menggunakan pprof.Parse dan kenal pasti struktur data dengan peruntukan memori terbanyak menggunakan perintah pprof-allocspace. Pada masa yang sama, pprof menyokong analisis masa nyata dan menyediakan titik akhir untuk mengakses maklumat penggunaan memori dari jauh.

Bahasa Go membantu operasi dan penyelenggaraan yang cekap: panduan praktikal Bahasa Go membantu operasi dan penyelenggaraan yang cekap: panduan praktikal Apr 08, 2024 pm 03:51 PM

Bahasa Go digunakan secara meluas dalam bidang operasi dan penyelenggaraan Artikel ini menyediakan panduan praktikal yang menunjukkan cara menggunakan bahasa Go untuk menyelesaikan tugas operasi dan penyelenggaraan biasa, seperti pengumpulan dan pemantauan penunjuk. Kes penggunaan operasi lain termasuk pengagregatan log, pengurusan konfigurasi automatik dan penyelesaian masalah. Keselarasan yang tinggi dan kemudahan penggunaan bahasa Go menjadikannya pilihan yang ideal untuk jurutera operasi dan penyelenggaraan Melalui kes praktikal dan kes penggunaan yang diperkenalkan dalam artikel ini, pasukan operasi dan penyelenggaraan boleh meningkatkan kecekapan dan memudahkan tugas utama.

Peranan dan potensi Golang dalam pembangunan aplikasi desktop Peranan dan potensi Golang dalam pembangunan aplikasi desktop Apr 08, 2024 pm 03:33 PM

Peranan Go dalam pembangunan aplikasi desktop: Go ialah pilihan ideal untuk pembangunan aplikasi desktop kerana sifat merentas platform, konkurensi, kesederhanaan dan mekanisme pengumpulan sampah. Potensi: Alat merentas platform: Buat alatan yang berjalan pada berbilang platform. Aplikasi yang cekap: Manfaatkan concurrency untuk memproses data dan meningkatkan prestasi. Apl GUI: Buat antara muka GUI moden dengan mudah. Pembangunan Permainan: Bangunkan permainan kependaman rendah dan berprestasi tinggi.

Kebolehgunaan Golang: analisis menyeluruh tentang kelebihan dan kekurangannya Kebolehgunaan Golang: analisis menyeluruh tentang kelebihan dan kekurangannya Apr 08, 2024 pm 05:09 PM

Golang sesuai untuk pemprosesan serentak dan senario berprestasi tinggi, dan popular untuk goroutine, kompilasi berprestasi tinggi dan sintaks ringkasnya. Kelemahan termasuk pengumpulan sampah serentak, had generik dan kematangan ekosistem. Kelebihan: Konkurensi tinggi (goroutine) Prestasi tinggi (kompilasi statik) Pustaka sintaks mudah Kelemahan kaya: Generik pengumpulan sampah mengehadkan kematangan ekosistem

Bahasa Go: bahasa skrip yang berkuasa dan fleksibel Bahasa Go: bahasa skrip yang berkuasa dan fleksibel Apr 08, 2024 am 09:57 AM

Bahasa Go ialah bahasa pengaturcaraan sumber terbuka moden yang terkenal dengan sokongan konkurensi, keselamatan memori dan keserasian merentas platform. Ia juga merupakan bahasa skrip yang sangat baik, menyediakan set fungsi dan utiliti terbina dalam yang kaya, termasuk: Sokongan Concurrency: Memudahkan skrip untuk melaksanakan berbilang tugas secara serentak. Keselamatan ingatan: Pengumpul sampah secara automatik mengeluarkan memori yang tidak digunakan untuk mengelakkan kebocoran memori. Keserasian merentas platform: Boleh disusun pada platform Windows, Linux, macOS dan mudah alih. Pustaka standard kaya: Menyediakan fungsi skrip biasa seperti fail I/O, permintaan rangkaian dan ungkapan biasa.

Bagaimanakah kelas dalaman tanpa nama Java menyelesaikan masalah kebocoran memori? Bagaimanakah kelas dalaman tanpa nama Java menyelesaikan masalah kebocoran memori? May 01, 2024 pm 10:30 PM

Kelas dalaman tanpa nama boleh menyebabkan kebocoran memori Masalahnya ialah mereka memegang rujukan kepada kelas luar, menghalang kelas luar daripada dikumpul. Penyelesaian termasuk: 1. Gunakan rujukan yang lemah Apabila kelas luar tidak lagi dipegang oleh rujukan yang kuat, pemungut sampah akan segera mengitar semula objek rujukan yang lemah memerlukan ingatan semasa pengumpulan sampah Hanya kemudian objek rujukan lembut dikitar semula. Dalam pertempuran sebenar, seperti dalam aplikasi Android, masalah kebocoran memori yang disebabkan oleh kelas dalaman tanpa nama boleh diselesaikan dengan menggunakan rujukan yang lemah, supaya kelas dalaman tanpa nama boleh dikitar semula apabila pendengar tidak diperlukan.

Pengurusan memori fungsi golang dan goroutine Pengurusan memori fungsi golang dan goroutine Apr 25, 2024 pm 03:57 PM

Memori untuk fungsi dalam Go diluluskan oleh nilai dan tidak menjejaskan pembolehubah asal. Goroutine berkongsi memori, dan memori yang diperuntukkan tidak akan dituntut semula oleh GC sehingga Goroutine menyelesaikan pelaksanaan. Kebocoran memori boleh berlaku dengan memegang rujukan Goroutine yang lengkap, menggunakan pembolehubah global atau mengelakkan pembolehubah statik. Untuk mengelakkan kebocoran, adalah disyorkan untuk membatalkan Goroutines melalui saluran, mengelakkan pembolehubah statik dan menggunakan penyataan tangguh untuk mengeluarkan sumber.

See all articles