logo

Јава стринг интерн()

Тхе Јава Стринг класа приправник() метода враћа интернирани стринг. Враћа канонску репрезентацију стринга.

пикадо листа

Може се користити за враћање стринга из меморије ако га креира нова кључна реч. Он ствара тачну копију објекта низа низа у скупу Стринг Цонстант.

Потпис

Потпис методе интерн() је дат у наставку:

 public String intern() 

Повратак

интернирани низ

Потреба и рад Стринг.интерн() методе

Када се стринг креира у Јави, он заузима меморију у хрпи. Такође, знамо да је класа Стринг непроменљива. Стога, кад год креирамо стринг користећи нову кључну реч, нова меморија се додељује у хрпи за одговарајући стринг, што је независно од садржаја низа. Размотрите следећи исечак кода.

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

Наредба принтлн штампа нетачно јер је за сваки литерал низа додељена посебна меморија. Тако се у меморији креирају два нова стринг објекта, тј. стр и стр1. који садржи различите референце.

подвуци користећи цсс

Знамо да је креирање објекта скупа операција у Јави. Стога, да би уштедели време, Јава програмери су смислили концепт Стринг Цонстант Поол (СЦП). СЦП је област унутар меморије гомиле. Садржи јединствене жице. Да бисте стрингове ставили у скуп стрингова, потребно је позвати тхе приправник() методом. Пре креирања објекта у групи стрингова, ЈВМ проверава да ли је стринг већ присутан у скупу или не. Ако је стринг присутан, враћа се његова референца.

 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 

У горњем исечку кода, метода интерн() се позива на Стринг објекте. Стога се меморија додељује у СЦП-у. За другу наредбу се не креира нови објекат стринг пошто су садржај стр и стр1 исти. Због тога се референца објекта креираног у првој изјави враћа за стр1. Дакле, стр и стр1 оба упућују на исту меморију. Дакле, изјава принт штампа тачно.

Пример метода Јава стринг интерн().

Назив документа: ИнтернЕкампле.јава

 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 }} 
Тестирајте одмах

Излаз:

 false true 

Јава стринг интерн() Пример методе 2

Хајде да видимо још један пример да разумемо концепт стринг интерн.

8 до 1 мултиплексер

Назив документа: ИнтернЕкампле2.јава

 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 } } 
Тестирајте одмах

Излаз:

 true false true false true false 

Тачке које треба запамтити

Следе неке важне тачке које треба запамтити у вези са методом интерн():

јсон пример података

1) Стринг литерал увек позива методу интерн(), без обзира да ли неко помиње метод интерн() заједно са литералом стринга или не. На пример,

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

2) Кад год креирамо Стринг објекат користећи Нова кључна реч, креирају се два објекта. На пример,

 String str = new ('Hello World'); 

Овде се један објекат креира у меморији гомиле изван СЦП-а због употребе нове кључне речи. Пошто имамо и стринг литерал ('Хелло Ворлд'); стога, један објекат је креиран унутар СЦП-а, под условом да буквално 'Хелло Ворлд' већ није присутно у СЦП-у.