Методът Java String intern () връща канонично представяне на низовия обект.
Синтаксисът на метода низ intern()
е:
string.intern()
Тук низът е обект на String
класа.
intern () Параметри
В intern()
метода не взема никакви параметри.
intern () Върната стойност
- връща канонично представяне на низа
Какво е Java String Interning?
String интернирането гарантира, че всички низове с еднакво съдържание използват една и съща памет.
Да предположим, че ние тези два низа:
String str1 = "xyz"; String str2 = "xyz";
Тъй като str1
и двете str2
имат едно и също съдържание, и двата низа ще споделят една и съща памет. Java автоматично интернира низовите литерали.
Ако обаче създадете низове с помощта на new
ключовата дума, тези низове няма да споделят една и съща памет. Например,
class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); System.out.println(str1 == str2); // false ) )
Както можете да видите от този пример, и str1, и str2 имат едно и също съдържание. Те обаче не са равни, защото не споделят една и съща памет.
В този случай можете ръчно да използвате intern()
метода, така че една и съща памет да се използва за низове със същото съдържание.
Пример: 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 ) )
Както можете да видите, и str1, и str2 имат едно и също съдържание, но първоначално не са равни.
След това използваме intern()
метода, така че str1 и str2 да използват един и същ пул памет. След като използваме intern()
, str1 и str2 са равни.