A Java String intern () metódus a string objektum kanonikus ábrázolását adja vissza.
A string intern()
metódus szintaxisa :
string.intern()
Itt a karakterlánc az String
osztály objektuma .
gyakornok () Paraméterek
A intern()
módszer nem vesz fel paramétereket.
gyakornok () visszatérési érték
- a karakterlánc kanonikus ábrázolását adja vissza
Mi az a Java karakterlánc internálás?
A String internálás biztosítja, hogy minden azonos tartalmú karakterlánc ugyanazt a memóriát használja.
Tegyük fel, hogy ez a két húr:
String str1 = "xyz"; String str2 = "xyz";
Mivel mind str1
és str2
azonos tartalommal, mindkét húrok ugyanazt a memóriát. A Java automatikusan internálja a karakterláncokat.
Ha azonban karakterláncokat hoz létre a new
kulcsszó használatával, akkor ezek a karakterláncok nem osztják meg ugyanazt a memóriát. Például,
class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); System.out.println(str1 == str2); // false ) )
Amint ebből a példából láthatja, az str1 és az str2 egyaránt tartalommal rendelkezik. Azonban nem egyenlőek, mert nem ugyanaz a memória.
Ebben az esetben manuálisan is használhatja a intern()
módszert, hogy ugyanazt a memóriát használja az azonos tartalmú karakterláncokhoz.
Példa: Java String intern ()
class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); // str1 and str2 doesn't share the same memory pool System.out.println(str1 == str2); // false // using the intern() method // now both str1 and str2 share the same memory pool str1 = str1.intern(); str2 = str2.intern(); System.out.println(str1 == str2); // true ) )
Mint látható, az str1 és az str2 tartalma is azonos, de kezdetben nem egyenlőek.
Ezután azt a intern()
módszert használjuk , hogy az str1 és az str2 ugyanazt a memóriakészletet használja. Miután használjuk intern()
, str1 és str2 egyenlő.