Ano ang String.intern() sa Java?

Ano Ang String Intern Sa Java



Sa Java, ang ' intern() Ang paraan ng ” ay ginagamit upang matiyak na kung ang isang malaking halaga ng string ay nag-iimbak ng data, ang mga string na may parehong elemento ay nagbabahagi ng parehong memorya. Ang pamamaraang ito ay lubhang kapaki-pakinabang para sa pagbawas ng espasyo ng memorya para sa programa. Halimbawa, kung mayroon kang malaking listahan ng mga pangalan ng empleyado kung saan ang pangalan ay ' jack ” lalabas ng sampung beses. Ang ' intern() 'paraan ay titiyakin na ang ' jack ” sumasakop lamang ng isang puwang sa memorya.

Tatalakayin ng post na ito ang paggamit ng String.intern() na pamamaraan sa Java.







Ano ang String.intern() sa Java?

Ang ' intern() ” na paraan sa Java ay ginagamit para sa pagbabalik ng reference sa nakasaad na string object. Gayunpaman, kung umiral ang string object na may parehong content/data sa string pool, ibabalik nito ang reference ng nakaraang string. Higit pa rito, kung wala ang string sa string pool, idaragdag nito ang bagong string at ang reference nito sa string pool.



Syntax

Upang magamit ang nakasaad na pamamaraan, sundin lamang ang syntax na ibinigay sa ibaba:



String . intern ( )

Sa halimbawang ito, tatalakayin natin kung bakit kailangang gamitin ang ' intern() 'paraan sa Java kapag ang string ay ginawa sa isang heap gamit ang ' String() ” constructor. Una, ang isang string object ay nilikha gamit ang ' String() ” constructor. Pagkatapos nito, ang data para sa string ay ipinapasa bilang parameter sa bagay na ito at nakaimbak sa isang variable:





String a = bago String ( 'Welcome sa Linuxhint.' ) ;

Ang isa pang string object ay nilikha sa pamamagitan ng pagsunod sa parehong pamamaraan:

String b = bago String ( 'Maligayang pagdating sa Linuxhint' ) ;

Tawagan ang ' println()' na paraan at itakda ang 'a=b ” bilang argumento sa pamamaraang ito. Ibabalik nito ang resulta bilang false dahil ang bawat string ay may sariling espasyo sa memorya:



Sistema . palabas . println ( a == b ) ;

Mapapansin na ang output ng nabanggit na halimbawa ay nagbabalik ng mali:

Halimbawa 1: String.intern() Paraan para Suriin ang String Objects

Sa halimbawang ito, ang dalawang string na bagay ay nilikha sa pamamagitan ng paggamit ng “ String() ” constructor at isang string ay ipinapasa sa constructor bilang isang argumento. Susunod, tawagan ang ' intern() 'paraan para sa bawat string at iimbak ang unang string sa variable' a 'at ang pangalawa sa' b ”. Suriin ang kondisyon ' a=b 'at gamitin ang' println() ” para ipakita ang resulta:

String a = bago String ( 'Maligayang pagdating sa Linuxhint' ) . intern ( ) ;
String b = bago String ( 'Maligayang pagdating sa Linuxhint' ) . intern ( ) ;
Sistema . palabas . println ( a == b ) ;

Bilang resulta, ibinabalik nito ang ' totoo 'halaga dahil ang' intern() ” paraan na tinitiyak na ang bawat string ay sumasakop sa espasyo sa parehong memorya upang mag-imbak ng data ng string:

Halimbawa 2: String.intern() Paraan para Suriin ang String at String Object

Sa nakasaad na halimbawang ito, ang iba't ibang mga string ay nilikha at iniimbak sa iba't ibang mga variable. Para sa layuning ito, una, ang isang variable ay pinasimulan na may isang string na halaga ' Linux ”:

String a = 'Linux' ;

Gamitin ang ' intern() 'paraan sa pamamagitan ng pag-access sa string' a 'at itabi ito sa variable' b ”:

String b = a. intern ( ) ;

Ang isang bagong string-type object ay nilikha sa tulong ng ' String() ' constructor at ipinapasa ang ' Linux ” bilang parameter sa constructor na ito. Pagkatapos, itabi ito sa variable na ' c ”:

String c = bago String ( 'Linux' ) ;

Tawagan ang ' intern() 'paraan sa pamamagitan ng pag-access sa variable' c ” at iimbak ang resulta sa “ d ”:

String d = c. intern ( ) ;

Ngayon, ihambing ang mga nilikhang string na ito sa isa't isa. Para sa layuning iyon, tawagan ang ' println() ” na paraan at ipasa ang parameter ayon sa snippet ng code sa ibaba:

Sistema . palabas . println ( a == b ) ;
Sistema . palabas . println ( a == c ) ;
Sistema . palabas . println ( a == d ) ;
Sistema . palabas . println ( b == c ) ;
Sistema . palabas . println ( b == d ) ; Sistema . palabas . println ( c == d ) ;

Ang output ng bawat kaukulang pahayag ay naka-print sa console. Na-map namin ang output sa bawat pahayag:

Iyon lang ang tungkol sa string.intern() na pamamaraan sa Java.

Konklusyon

Ang ' String.intern() ” paraan sa Java ay nagbabalik ng reference sa nakasaad na string object. Gayunpaman, kung umiral ang string object na may parehong content/data sa string pool, ibabalik nito ang reference ng nakaraang string. Ang post na ito ay nagpahayag ng iba't ibang mga kaso ng paggamit ng String.intern() na pamamaraan sa Java.