Immutable String sa Java: Lahat ng Kailangan Mong Malaman



Magbibigay sa iyo ang artikulong ito ng isang detalyado at komprehensibong kaalaman tungkol sa Immutable String sa Java, Bakit Mahalaga ito?

Pakikitungo sa Immutable String in ay isang napakahalagang Aspeto sa anumang wika ng programa. Sa artikulong ito, tatalakayin namin ang mga sumusunod na tagubilin:

Panimula sa Immutable String sa Java

Ang string pool ay may mga string string na na-cache dahil sa kung aling string ang hindi nababago. Maramihang mga kliyente ang nagbabahagi ng mga cache na literal na string. Ang mga panganib na kasangkot sa pagkilos ng isang kliyente ay makakaapekto sa lahat ng iba pang mga kliyente.





Halimbawa, kapag binago ng isang kliyente ang 'Pagsubok' na halaga ng String sa 'PAGSUSULIT', makikita ng lahat ng iba pang mga kliyente ang binagong halaga. Tulad ng mga string object na cache ay mahalaga para sa pagganap, iniiwasan ng Immutable String class ang panganib. Gayundin, Ginawang pangwakas ang string upang ang invariant ng klase ng String ay hindi makompromiso. Halimbawang Kawalan ng kakayahan, Pag-cache, pagkalkula ng hash code na ginawa sa pamamagitan ng pagpapalawak at pag-override ng mga pag-uugali.

Hashmap Key

Ang HashMap key ay napakapopular, ang pagiging nababago ay napakahalaga upang ang bagay na halaga ay maaaring makuha mula sa HashMap. Hashing ay ang prinsipyo ng HashMap, na nangangailangan ng pareho ay may halaga upang gumana nang maayos. Dalawang magkakaibang mga hashcode ang ginawa ng isa sa oras ng pagpapasok at iba pa sa oras ng pagkuha kapag ang mga nilalaman ay binago pagkatapos ng pagpapasok, na posibleng mawalan ng object ng halaga ng mapa sa mapa.



tutorial ng developer ng salesforce para sa mga nagsisimula sa pdf

Hashtable-Immutable String sa Java
Ang klase ng Immutable String sa Java ang madalas na tinanong .Nagsisimula ang talakayan sa, ano ang isang String, kung paano ito naiiba mula sa String in C ++, at pagkatapos ang tanong ay sumusunod na hindi nababago ang mga bagay sa Java, mga benepisyo ng hindi nababago na bagay, ano ang kanilang paggamit at mga senaryong gagamitin ang mga ito.

Kailangan para sa Immutable String sa Java

Dalawang kadahilanan ang mahalaga upang sabihin kung bakit ginawa ang klase ng Immutable String sa Java:

1. Hindi posible sa kaso na magkaroon ng isang string object / literal.



Tumingin tayo sa halimbawa sa ibaba:

Ang 'pagsubok' ay maaaring i-refer ng maraming mga variable ng sanggunian. Kung ang sinuman sa kanila ang nagbago ng halaga para sa iba, maaapektuhan din ito. Tingnan natin kung paano.

String A = 'Test'
String B = 'Pagsubok'


Tinawag ang String A, 'Test' .toUpperCase () na binabago ang parehong bagay sa,'PAGSUSULIT'kaya't ang B ay magiging 'TEST' din na hindi kailangan. Nasa ibaba ang isang diagram na nagsasabi sa amin kung paano nilikha ang String sa heap memory at String literal na pool.

2. Ang string ay malawak na ginamit bilang isang parameter para sa maraming mga klase sa Java. Halimbawa, kapag binuksan namin ang isang koneksyon sa network, maaari naming ipasa ang hostname at numero ng port bilang isang string, para sa pagbubukas ng koneksyon sa database maaari naming ipasa ang database URL bilang isang string.


Ang isang hindi nababago na string ay hahantong sa mga seryosong banta sa seguridad. Halimbawa, ang isang tao ay maaaring mag-access ng isang file, kung saan siya ay may access at pagkatapos ay palitan ang pangalan ng pangalan ng file upang makakuha ng pag-access sa iba pang file. Sa kaso ng hindi nababago, hindi na kailangang magalala tungkol sa mga pagbabanta na ito.

Ang isang hindi nababago na string ay maaaring ligtas na magbahagi ng mga thread din, na mahalaga para sa multithreaded na programa. Ang isang hindi nababago na halimbawa ng string ay ligtas sa thread sa Java kaya hindi na kailangang i-synchronize ang pagpapatakbo ng String sa panlabas upang maiwasan ang mga isyu sa pag-syncing sa Java. Ang isa pang mahalagang puntong dapat tandaan ay ang pagtagas sa memorya na sanhi ng Substring, na hindi isang isyu na nauugnay sa thread ngunit isang bagay na dapat magkaroon ng kamalayan.

Sa pamamagitan nito, napunta kami sa dulo ng artikulong 'Immutable String in Java' na ito. C ano ba ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo para sa mga mag-aaral at propesyonal na nais na maging isang Java Developer.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na ito at babalikan ka namin sa lalong madaling panahon.