Final sering digunakan dengan statis untuk mendeklarasikan konstanta, dan Anda juga akan melihat bagaimana final meningkatkan kinerja aplikasi.
Apa arti kata kunci akhir?
Final adalah kata kunci yang dipesan di Java, yang dapat mendeklarasikan variabel anggota, metode, kelas, dan variabel lokal. Setelah Anda mendeklarasikan referensi sebagai final, Anda tidak akan dapat mengubah referensi.
Apa variabel terakhir?
Setiap variabel anggota atau variabel lokal (variabel dalam metode atau blok kode disebut variabel lokal) yang dinyatakan sebagai final disebut variabel akhir. Variabel akhir sering digunakan bersama dengan kata kunci statis sebagai konstanta. Berikut adalah contoh variabel akhir:
Salinan kode adalah sebagai berikut:
pinjaman string final statis publik = "pinjaman";
Pinjaman = string baru ("pinjaman") // kesalahan kompilasi tidak valid
Variabel terakhir hanya baca.
Apa metode terakhirnya?
Final juga dapat menyatakan metode. Kata kunci akhir ditambahkan sebelum metode, yang berarti bahwa metode ini tidak dapat ditulis ulang dengan metode subkelas. Jika Anda berpikir bahwa fungsi suatu metode cukup lengkap dan tidak perlu diubah di subkelas, Anda dapat mendeklarasikan metode ini final. Metode terakhir lebih cepat dari metode non-final, karena sudah terikat secara statis selama kompilasi dan tidak perlu diikat secara dinamis saat runtime. Berikut adalah contoh metode akhir:
Salinan kode adalah sebagai berikut:
kelas personalloan {
String final publik getName () {
mengembalikan "pinjaman pribadi";
}
}
Kelas CheappersonAnoan memperluas personalloan {
@Mengesampingkan
String final publik getName () {
mengembalikan "pinjaman pribadi murah";
}
}
Apa kelas terakhirnya?
Kelas yang menggunakan final untuk memodifikasi disebut kelas akhir. Kelas akhir biasanya lengkap secara fungsional dan tidak dapat diwarisi. Ada banyak kelas di Java yang final, seperti string, interger dan kelas pembungkus lainnya. Berikut adalah contoh kelas terakhir:
Salinan kode adalah sebagai berikut:
Kelas terakhir personalloan {
}
Kelas CheappersonAnoan memperluas personalloan {// Kesalahan kompilasi: tidak dapat mewarisi dari kelas akhir
}
Berikut adalah beberapa manfaat menggunakan kata kunci akhir
Kata kunci akhir meningkatkan kinerja. Variabel akhir aplikasi JVM dan Java cache.
Variabel akhir dapat dibagikan dengan aman di lingkungan multi-threaded tanpa perlu overhead sinkronisasi tambahan.
Menggunakan kata kunci akhir, JVM akan mengoptimalkan metode, variabel, dan kelas.
Kelas Immutable
Untuk membuat kelas yang tidak dapat diubah, gunakan kata kunci akhir. Kelas yang tidak dapat diubah berarti bahwa objeknya tidak dapat diubah begitu mereka dibuat. String adalah perwakilan dari kelas yang tidak dapat diubah. Kelas-kelas yang tidak dapat diubah memiliki banyak manfaat, seperti objek mereka hanya baca dan dapat dibagikan dengan aman di lingkungan multi-threaded tanpa overhead sinkronisasi tambahan, dll.
Bacaan terkait: Mengapa string tidak dapat diubah dan bagaimana menulis kelas yang tidak dapat diubah.
Pengetahuan penting tentang final
Kata kunci akhir dapat digunakan untuk variabel anggota, variabel lokal, metode, dan kelas.
Variabel anggota akhir harus diinisialisasi pada saat deklarasi atau dalam konstruktor, jika tidak, kesalahan kompilasi akan dilaporkan.
Anda tidak dapat menetapkan variabel akhir lagi.
Variabel lokal harus diberikan nilai pada waktu deklarasi.
Semua variabel dalam kelas anonim harus berupa variabel akhir.
Metode terakhir tidak dapat ditulis ulang.
Kelas terakhir tidak dapat diwariskan.
Kata kunci akhir berbeda dari kata kunci akhir, yang digunakan untuk penanganan pengecualian.
Kata kunci akhir mudah dikacaukan dengan metode finalisasi (), yang merupakan metode yang ditentukan dalam kelas objek dan merupakan metode yang dipanggil oleh JVM sebelum pengumpulan sampah.
Semua variabel yang dinyatakan dalam antarmuka sendiri adalah final.
Dua kata kunci final dan abstrak terkait terbalik, sehingga kelas terakhir tidak bisa abstrak.
Metode terakhir terikat pada tahap kompilasi, yang disebut pengikatan statis.
Variabel akhir kosong yang tidak menginisialisasi variabel akhir pada deklarasi disebut variabel akhir kosong. Jika Anda tidak melakukan ini, kompiler akan melaporkan kesalahan "Variabel akhir (nama variabel) perlu diinisialisasi".
Mendeklarasikan kelas, metode, dan variabel sebagai final dapat meningkatkan kinerja, sehingga JVM memiliki kesempatan untuk memperkirakan dan kemudian mengoptimalkan.
Menurut Konvensi Kode Java, variabel akhir adalah konstanta, dan nama -nama konstan biasanya dikapitalisasi:
Private Final Int Count = 10;
Mendeklarasikan Final untuk Objek Koleksi berarti bahwa referensi tidak dapat diubah, tetapi Anda dapat menambahkan, menghapus atau mengubah konten ke dalamnya. Misalnya:
Pinjaman Daftar Akhir Pribadi = ArrayList baru ();
list.add ("pinjaman rumah");
list.add ("Pinjaman Pribadi");
pinjaman = vektor baru (); // tidak valid
Kita sudah tahu apa variabel akhir, metode akhir, dan kelas akhir. Gunakan final bila perlu untuk menulis lebih cepat dan kode yang lebih baik.