„Java“ styginių praktikantas ()

„Java String intern“ () metodas pateikia kanoninį eilutės objekto vaizdą.

Stygos intern()metodo sintaksė yra:

 string.intern()

Čia eilutė yra klasės objektas String.

praktikantas () Parametrai

intern()Metodas nesiima jokių parametrų.

intern () grąžinimo vertė

  • grąžina kanoninį eilutės vaizdą

Kas yra „Java“ stygų internavimas?

Stygų internavimas užtikrina, kad visos to paties turinio eilutės naudoja tą pačią atmintį.

Tarkime, mes šias dvi eilutes:

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

Kadangi abi str1ir str2turi tą patį turinį, abi šios eilutės turės tą pačią atmintį. „Java“ automatiškai praktikuoja eilutės literalus.

Tačiau jei kuriate eilutes naudodami newraktinį žodį, šios eilutės nesidalins ta pačia atmintimi. Pavyzdžiui,

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

Kaip matote iš šio pavyzdžio, tiek str1, tiek str2 turi tą patį turinį. Tačiau jie nėra lygūs, nes neturi tos pačios atminties.

Tokiu atveju galite rankiniu būdu naudoti intern()metodą, kad ta pati atmintis būtų naudojama to paties turinio eilutėms.

Pavyzdys: „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 ) )

Kaip matote, tiek str1, tiek str2 turi tą patį turinį, tačiau iš pradžių jie nėra lygūs.

Tada mes naudojame intern()metodą, kad str1 ir str2 naudotų tą patį atminties fondą. Po to, kai mes naudosime intern(), str1 ir str2 yra lygūs.

Įdomios straipsniai...