String ialah kelas yang menyimpan jujukan aksara dalam Java Ia tergolong dalam pakej java.lang. Setelah objek String dicipta, ia tidak boleh diubah suai (tidak boleh diubah).
Semua objek String disimpan di lokasi memori yang berasingan di kawasan timbunan, dipanggil String Kolam Malar .
Setiap kali nilai rentetan ditakrifkan, JVM mencipta objek rentetan dengan nilai yang diberikan dalam kolam pemalar rentetan. Jadi jika anda menjalankan program di atas, dua nilai rentetan akan dibuat dalam kolam pemalar rentetan.
Kaedah ini mengembalikan nilai rentetan semasa daripada kumpulan nilai rentetan unik. Setiap kali anda memanggil kaedah ini pada String tertentu, ia akan dikembalikan jika kolam pemalar String sudah mengandungi String yang sama dengannya (mengikut kaedah sama dengan kelas Objek). Jika tidak, rentetan semasa ditambah pada kolam pemalar rentetan dan rujukan kepadanya dikembalikan.
Iaitu, jika anda memanggil kaedah ini pada dua rentetan dengan kandungan yang sama, ia dijamin berkongsi ingatan yang sama.
Kaedah ini boleh mengurangkan memori yang diduduki dengan mudah apabila berbilang nilai pendua muncul.
Di bawah kami akan mencipta dua rentetan dengan kandungan yang sama (menggunakan kata kunci baharu) dan membandingkannya menggunakan operator "==". Walaupun kedua-dua objek mempunyai nilai yang sama, kerana mereka tidak merujuk objek yang sama (memori), hasilnya akan menjadi palsu.
public class InternExample { public static void main(String args[]) { String str1 = new String("Hello"); str1 = str1.intern(); String str2 = "Hello"; str2 = str2.intern(); System.out.println(str1.equals(str2)); } }
false
Tetapi jika anda memanggil kaedah pelatih sebelum membandingkan dua objek kerana ia memastikan kedua-dua objek berkongsi memori yang sama jika ia mempunyai kandungan yang sama ), hasilnya akan menjadi benar.
public class InternExample { public static void main(String args[]) { String str1 = new String("Hello"); str1 = str1.intern(); String str2 = new String("Hello"); str2 = str2.intern(); System.out.println(str1==str2); } }
true
Atas ialah kandungan terperinci Apakah tujuan kaedah String intern() di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!