Java Dizesi stajyeri ()

Java String intern () yöntemi, dize nesnesinin kurallı bir temsilini döndürür.

Dize intern()yönteminin sözdizimi şöyledir:

 string.intern()

Burada string, Stringsınıfın bir nesnesidir .

intern () Parametreler

intern()Yöntemin bir parametre almaz.

intern () Dönüş Değeri

  • dizenin kanonik bir temsilini döndürür

Java String Interning nedir?

String interning, aynı içeriğe sahip tüm dizelerin aynı belleği kullanmasını sağlar.

Diyelim ki, bu iki dizeyi:

 String str1 = "xyz"; String str2 = "xyz";

Her iki yana str1ve str2aynı içeriğe sahip bu iki dizeleri aynı bellek paylaşacak. Java, dize değişmezlerini otomatik olarak staj yapar.

Ancak, newanahtar sözcüğü kullanarak dizeler oluşturursanız , bu dizeler aynı belleği paylaşmaz. Örneğin,

 class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); System.out.println(str1 == str2); // false ) )

Bu örnekte görebileceğiniz gibi, hem str1 hem de str2 aynı içeriğe sahiptir. Ancak aynı hafızayı paylaşmadıkları için eşit değildirler.

Bu durumda, intern()aynı içeriğe sahip dizeler için aynı belleğin kullanılması için yöntemi manuel olarak kullanabilirsiniz .

Örnek: 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 ) )

Gördüğünüz gibi, hem str1 hem de str2 aynı içeriğe sahiptir, ancak başlangıçta eşit değildirler.

Daha sonra intern()yöntemi str1 ve str2'nin aynı bellek havuzunu kullanması için kullanırız. intern()Kullandıktan sonra str1 ve str2 eşittir.

Ilginç makaleler...