logo

Java String stajyeri()

Java Dizesi sınıfı Stajyer() yöntem interned dizeyi döndürür. Dizenin kanonik gösterimini döndürür.

Java geliştirilmiş döngü

Yeni bir anahtar kelime tarafından oluşturulmuşsa dizeyi bellekten döndürmek için kullanılabilir. Dize Sabit Havuzunda yığın dize nesnesinin tam bir kopyasını oluşturur.

İmza

intern() yönteminin imzası aşağıda verilmiştir:

 public String intern() 

İadeler

dahili dize

String.intern() Yönteminin ihtiyacı ve çalışması

Java'da bir dize oluşturulduğunda, yığındaki belleği kaplar. Ayrıca String sınıfının değişmez olduğunu biliyoruz. Bu nedenle, new anahtar sözcüğünü kullanarak bir dize oluşturduğumuzda, dizinin içeriğine bakılmaksızın, yığında karşılık gelen dize için yeni bellek ayrılır. Aşağıdaki kod parçacığını göz önünde bulundurun.

 String str = new String('Welcome to JavaTpoint.'); String str1 = new String('Welcome to JavaTpoint'); System.out.println(str1 == str); // prints false 

Println deyimi false değerini yazdırır çünkü her dize değişmezi için ayrı bellek ayrılmıştır. Böylece bellekte str ve str1 olmak üzere iki yeni dize nesnesi oluşturulur. farklı referanslara sahip.

lateks listesi

Java'da nesne oluşturmanın maliyetli bir işlem olduğunu biliyoruz. Bu nedenle, zamandan tasarruf etmek için Java geliştiricileri Dize Sabit Havuzu (SCP) kavramını ortaya attılar. SCP, yığın belleğinin içindeki bir alandır. Benzersiz dizeleri içerir. Dizeleri dize havuzuna koymak için, kişinin çağrılması gerekir. Stajyer() yöntem. Dize havuzunda bir nesne oluşturmadan önce JVM, dizenin havuzda zaten mevcut olup olmadığını kontrol eder. Dize mevcutsa referansı döndürülür.

 String str = new String('Welcome to JavaTpoint').intern(); // statement - 1 String str1 = new String('Welcome to JavaTpoint').intern(); // statement - 2 System.out.println(str1 == str); // prints true 

Yukarıdaki kod parçacığında, Intern() yöntemi String nesnelerinde çağrılır. Bu nedenle bellek SCP'ye tahsis edilir. İkinci ifade için str ve str1'in içeriği aynı olduğundan yeni bir string nesnesi oluşturulmaz. Bu nedenle, ilk ifadede oluşturulan nesnenin referansı str1 için döndürülür. Böylece str ve str1'in her ikisi de aynı belleğe işaret eder. Bu nedenle, print ifadesi doğru olarak yazdırılır.

Java String intern() Yöntem Örneği

Dosya adı: StajyerÖrnek.java

 public class InternExample{ public static void main(String args[]){ String s1=new String('hello'); String s2='hello'; String s3=s1.intern();//returns string from pool, now it will be same as s2 System.out.println(s1==s2);//false because reference variables are pointing to different instance System.out.println(s2==s3);//true because reference variables are pointing to same instance }} 
Şimdi Test Edin

Çıktı:

linux nane tarçın vs mate
 false true 

Java String intern() Yöntemi Örnek 2

String intern kavramını anlamak için bir örnek daha görelim.

Dosya adı: StajyerÖrnek2.java

 public class InternExample2 { public static void main(String[] args) { String s1 = 'Javatpoint'; String s2 = s1.intern(); String s3 = new String('Javatpoint'); String s4 = s3.intern(); System.out.println(s1==s2); // True System.out.println(s1==s3); // False System.out.println(s1==s4); // True System.out.println(s2==s3); // False System.out.println(s2==s4); // True System.out.println(s3==s4); // False } } 
Şimdi Test Edin

Çıktı:

 true false true false true false 

Hatırlanacak noktalar

intern() yöntemiyle ilgili hatırlanması gereken bazı önemli noktalar şunlardır:

1) Bir dize değişmezi, dize değişmezi ile birlikte intern() yönteminden bahsedilsin veya belirtilmesin, her zaman intern() yöntemini çağırır. Örneğin,

 String s = 'd'.intern(); String p = 'd'; // compiler treats it as String p = 'd'.intern(); System.out.println(s == p); // prints true 

2) Ne zaman bir String nesnesi yaratsak yeni anahtar kelimeyle iki nesne oluşturulur. Örneğin,

dize oluşturucu java
 String str = new ('Hello World'); 

Burada new anahtar sözcüğünün kullanımı nedeniyle SCP dışındaki yığın belleğinde bir nesne oluşturulur. Elimizde string değişmezi de olduğu için ('Merhaba Dünya'); bu nedenle, 'Merhaba Dünya'nın SCP'de mevcut olmaması koşuluyla, SCP'nin içinde bir nesne oluşturulur.