Mengapa String Immutable Pada Java?

String objek pada Java bersifat immutable, artinya ketika String itu dibuat, maka kontennya tidak bisa diganti.

Pada pembahasan kali ini kita akan melihat lebih dalam lagi mengenai String.

Beberapa Alasan String Immutable


Ini yaitu pertanyaan klasik namun cukup terkenal yang sering ditanyakan oleh para pengguna bahasa pemrograman Java. Terdapat beberapa alasan yang membutuhkan pemahaman lebih dalam untuk hal ini, yaitu mencakup memori, sinkronisasi, struktur data, dan sebagainya.

Beberapa alasan mengenai mengapa String immutable atau simpulan dalam Java adalah:
  • Java Runtime sanggup menghemat banyak ruang memori heap alasannya yaitu variabel string yang berbeda sanggup merujuk kepada variabel string yang sama di dalam String pool. Pengertian dari string pool (kolam string ) yaitu daerah string disimpan dalam memori Java heap.

    String yaitu class istimewa dalam Java dan objek String sanggup dibentuk dengan memakai operator new ataupun memakai tanda petik ganda.

    Berikut ini yaitu diagram yang menggambarkan dengan terang bagaimana String pool berada dalam Java heap dan apa yang terjadi jikalau anda menciptakan String dengan cara yang berbeda.

    String objek pada Java bersifat immutable Mengapa String Immutable Pada Java?
    String pool di dalam Java heap


    String pool ini hanya sanggup terjadi alasannya yaitu String tersebut immutable. String pool sanggup menghemat ruang untuk Java Runtime walaupun waktu yang diharapkan untuk menciptakan String menjadi lebih lama.

    Ketika anda memakai tanda kutip ganda untuk menciptakan String, maka pertama-tama akan dicari String dengan nilai yang sama di dalam String pool, jikalau ditemukan, maka acuan akan dikembalikan, namun jikalau nilai yang sama tidak ditemukan, maka String yang gres akan dibentuk dan acuan akan dikembalikan.




    Namun ketika anda menciptakan String dengan operator new maka anda akan memaksa class String untuk menciptakan objek String yang gres di dalam ruang heap. Anda sanggup memakai method intern() untuk memasukannya kembali ke dalam String pool atau mengacu kepada objek String dari pool yang mempunyai nilai yang sama.

    Agar lebih terang berikut ini yaitu teladan jadwal yang menggambarkan mengenai String pool:



Output:


  • Jika String tidak immutable maka akan menjadi bahaya yang parah untuk aplikasi. Sebagai teladan pada username database, password dilewatkan sebagai String untuk mendapat koneksi pada database. Karena String immutable maka nilainya tidak bisa diubah kecuali ada peretas yang yang bisa mengubah nilai acuan untuk mengakibatkan duduk perkara keamanan pada aplikasi.


  • Karena String immutable maka kondusif untuk melaksanakan multithreading dan String tunggal sanggup di share pada banyak sekali thread-thread yang berbeda. Hal ini menghindari penggunaan synchronization untuk keamanan thread. Secara implisit String merupakan thread safe.


  • String dipakai dalam ClassLoader pada Java dan immutable-nya memperlihatkan kemananan bahwa class yang sempurna akan di-load oleh class loader ini.


  • Karena String immutable maka instruksi hashnya di-cache pada ketika pembuatan dan tidak perlu dihitung lagi. Ini menjadikannya pilihan yang andal untuk key di dalam Map dan pemrosesannya berlangsung lebih cepat dibandingkan dengan key objek HashMap lainnya. Inilah yang mengakibatkan String sering dipakai sebagai key HashMap.


Demikianlah beberapa poin yang bisa dirangkum mengenai mengapa String immutable pada Java. Ini menimbulkan String menjadi class yang istimewa pada Java alasannya yaitu mempunyai beberapa fitur-fitur yang andal yang sangat bermanfaat.

Belum ada Komentar untuk "Mengapa String Immutable Pada Java?"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel