-
Pengubah akses , yang menjelaskan aksesibilitas kelas, objek, atau bidang, diperlukan: jika tidak ada, JVM (ini adalah sumber keajaiban universal) secara otomatis menetapkan pengidentifikasi default ke paket.
Mulai dari pengubah kedua terdapat pengubah non-akses, yang tidak wajib dan juga dapat bertentangan satu sama lain (tetapi yang pertama adalah yang pertama).
-
Pengubah Statis menunjukkan bahwa kelas, objek, atau bidang bersifat statis. Tapi apa maksudnya? Intinya kami akan mencobanya di lapangan.
Variabel statis disebut variabel kelas dan unik untuk semua instance kelas tersebut. Metode statis dapat dipanggil tanpa membuat objek yang mendeklarasikannya. Kelas statis digunakan ketika menyatukan satu kelas ke kelas lain dan prinsip interaksi antara kelas dalam dan kelas luar mirip dengan metode (ini adalah topik untuk diskusi terpisah). Dapat juga digunakan sebagai blok terpisah dalam suatu objek.
-
Pengubah Final secara efektif menunjukkan kepada suatu variabel bahwa itu adalah sebuah konstanta. Untuk metode - bahwa mereka tidak dapat ditimpa selama pewarisan, tetapi untuk kelas ini merupakan indikasi bahwa metode tersebut tidak dapat diwarisi darinya (tidak dapat diubah).
Pengubah statis dan final berlaku untuk kelas, objek, dan bidang. Namun, ada pengubah yang hanya berlaku untuk sebagian dari variabel tersebut (atau bahkan sebagian dari variabel tersebut, karena variabel dan metode adalah bidang, namun tidak semua pengubah berlaku untuk keduanya). Jika kita analogikan, hanya sepatu bot dan sarung tangan yang dapat disihir untuk kecepatan (untuk membuatnya bergerak lebih cepat), tetapi membuat topi untuk kecepatan tidak ada gunanya (dan Dewan Pengawas Universal (kompiler) tidak akan mengizinkannya).
-
Pengubah Abstrak hanya berlaku untuk metode dan kelas . Metode abstrak adalah metode tanpa implementasi (tubuh).
Jika suatu kelas ditandai sebagai abstrak, kelas tersebut berisi metode abstrak atau dilakukan untuk mencegah pembuatan instance kelas tersebut. Jika kita analogikan, di tengah instruksi Anda dapat melihat judul “Mewarnai suatu objek”, setelah itu tidak ada deskripsi. Itu. dengan menggunakan instruksi ini Anda dapat membuat sebuah objek dan Anda juga dapat mewarnainya, tetapi instruksi khusus ini tidak menyebutkan caranya (tulis instruksi Anda sendiri untuk membuat objek merah berdasarkan objek ini dan jelaskan cara mewarnainya).
-
Pengubah Tersinkronisasi hanya digunakan untuk metode. Kehadirannya menunjukkan bahwa hanya satu thread yang dapat mengeksekusinya dalam satu waktu. Dapat juga digunakan sebagai blok kode terpisah dalam suatu objek (menentukan objek sinkronisasi).
-
Pengubah volatil - hanya untuk variabel . Disarankan digunakan untuk variabel yang dapat digunakan secara bersamaan oleh beberapa thread. Variabel dengan pengubah seperti itu langsung disalin dari cache prosesor ke memori utama setiap kali diubah, memungkinkan thread paralel menerima nilai terbaru.
Perlu dicatat bahwa volatil berlaku dalam kasus di mana hanya satu thread yang dapat menulis ke suatu variabel, dan sisanya hanya dapat membaca dari variabel tersebut. Untuk kasus lain, lebih baik menambahkan pengubah tersinkronisasi ke metode yang menulis ke variabel volatil.
-
Pengubah sementara – hanya untuk variabel . Pengubah ini menandai variabel yang perlu dilewati saat membuat serialisasi suatu objek (ini adalah proses yang sangat cerdas sehingga, pada prinsipnya, Anda dapat membacanya sendiri...)*
* - Saya menulis artikel ini di level 17 dan sampai saat itu serialisasi sebagai sebuah proses belum dijelaskan, jadi daripada menyalin-menempel, saya menyarankan Anda untuk mempelajarinya sendiri jika perlu.
- Final dan Volatile - jika menyangkut variabel, kita tidak dapat secara bersamaan mengatakan bahwa variabel tersebut final (konstan) dan beberapa thread memiliki kemampuan untuk mengubahnya... Bagaimanapun, ini konstan, dan setiap saat thread dapat membacanya , tetapi tidak ada satu thread pun yang dapat mengubah konstanta tersebut (Dewan Pengawas Universal tidak akan mengizinkannya).
- Final dan Abstrak - kelas dan metode tidak boleh bersifat abstrak (yang dalam banyak kasus menyiratkan perlunya memperjelasnya untuk implementasi) dan final, yaitu. kekal. Ternyata di petunjuknya tertulis cara membuat helm yang bagus dan tahan lama dari bahan apa saja (bagian abstrak), namun untuk itu tidak boleh ada lubang di dalamnya (bagian akhir yang wajib, tidak bisa diubah).
- Abstrak dan Statis - Metode abstrak tidak dapat statis atau disinkronkan secara bersamaan. Metode abstrak statis tidak masuk akal, karena tidak hanya tidak melakukan apa pun, tetapi juga milik seluruh kelas - hasilnya adalah hal yang tidak berguna.
- Abstrak dan Disinkronkan - apa gunanya menyinkronkan pekerjaan dengan metode yang tidak melakukan apa pun?
GO TO FULL VERSION