JavaRush /Blog Java /Random-MS /Coffee break #105. Mengapa Strings tidak boleh diubah dal...

Coffee break #105. Mengapa Strings tidak boleh diubah dalam Java? Antara muka dalam Java dan pelbagai warisan

Diterbitkan dalam kumpulan

Mengapa Strings tidak boleh diubah dalam Java?

Sumber: Dev.to Sebelum memahami mengapa Strings tidak boleh diubah di Jawa, kita perlu memikirkan mengapa kita membuat sesuatu tidak berubah? Coffee break #105.  Mengapa Strings tidak boleh diubah dalam Java?  Antara muka dalam Java dan pelbagai warisan - 1Tidak berubah bermakna apabila dicipta kita tidak boleh mengubahnya. Satu-satunya sebab kita boleh memikirkan untuk membuat sesuatu yang tidak berubah adalah untuk penyegerakan apabila digunakan bersama. Inilah sebab mengapa rentetan tidak boleh diubah. Di Jawa, objek String dikongsi dan dicache dalam Kolam String. Ia ialah lokasi khusus pada timbunan tempat rentetan disimpan dan dikongsi antara berbilang benang jika rentetan tersebut mempunyai nilai yang sama. Sebagai contoh: dalam kolam rentetan, jika sudah ada rentetan dengan nilai "ujian" dan program ingin mencipta objek rentetan lain dengan nilai yang sama, maka ia akan mendapat rujukan yang sama dan bukannya mencipta objek rentetan baharu. Sekarang kita tahu bagaimana rentetan disimpan pada timbunan. Mari kita lihat mengapa mereka tidak berubah.
  1. Sebab pertama untuk ketidakubahannya ialah keselamatan benang. Memandangkan baris dikongsi antara berbilang utas dalam kumpulan baris, kami perlu mengehadkan sebarang utas rawak untuk menukarnya. Sebarang perubahan pada baris boleh menjejaskan urutan lain yang mengakses baris yang sama. Jika urutan ingin mengemas kini nilai baris, ia perlu mencipta baris lain dan merujuknya.

  2. Biasanya kami menggunakan String sebagai kunci dalam Map . Jika rentetan boleh berubah, sesiapa sahaja boleh menukar nilai rentetan dan kami akan kehilangan kunci sebenar.

Antara muka dalam Java dan pelbagai warisan

Sumber: Dev.to Mari kita fahami apa itu warisan berbilang. Warisan berbilang ialah ciri beberapa bahasa pengaturcaraan berorientasikan objek di mana objek atau kelas boleh mewarisi fungsi daripada lebih daripada satu objek induk atau kelas induk. Coffee break #105.  Mengapa Strings tidak boleh diubah dalam Java?  Antara muka dalam Java dan pelbagai warisan - 1Seperti yang ditunjukkan dalam imej di atas, kelas anak warisan berbilang boleh mempunyai dua atau lebih kelas asas, tetapi untuk mencapainya, kami memerlukan antara muka.

Antara muka

Antara muka dalam Java ialah pelan tindakan kelas. Ia mempunyai pemalar statik dan kaedah abstrak. Iaitu, antara muka hanya boleh mengandungi kaedah dan pembolehubah abstrak, ia tidak boleh mempunyai badan kaedah. Ia tidak boleh dibuat dengan cara yang sama seperti kelas abstrak.

Jadi di manakah kita mengisytiharkan badan kaedah ini?

Badan kaedah diisytiharkan di dalam kelas di mana kaedah diperlukan mengikut keperluan pengaturcara.

Bagaimana untuk mengisytiharkan antara muka?

Antara muka boleh diisytiharkan menggunakan kata kunci antara muka . Sintaks:
interface interface_name {abstract methods}

Catatan

Untuk menggunakan antara muka yang diisytiharkan dalam kelas, kita mesti menggunakan kata kunci implements .

Perlaksanaan?

Mula-mula kita akan mencipta antara muka print , dan di dalamnya kita akan mencipta kaedah abstract print() ;
interface printgib{
void print();
}
Sekarang kita mempunyai antara muka yang sedia untuk digunakan oleh kelas, jadi mari kita buat kelas abc dan gk dan laksanakan antara muka di dalamnya.
public class abc implements printgib{
public void print(){                     //1st implementation of print
System.out.println("I love you 3000");
}
public static void main(String[] args){
abc obj = new abc();
gk obj1 = new gk();
obj.print();
obj1.print();
}
}

class gk implements printgib{
public void print(){                   //2nd implementation of print
System.out.println("I am Gk");
}
}
Seperti yang ditunjukkan dalam kod di atas, kami telah mencapai pelbagai warisan dan melaksanakan antara muka. Sekarang untuk menjalankan kod, simpan fail dan...
javac file_name.java
java abc

Keputusan:

Coffee break #105.  Mengapa Strings tidak boleh diubah dalam Java?  Antara muka dalam Java dan pelbagai warisan - 2
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION