Ce trebuie să știți despre utilizarea șirurilor în Java

Ce trebuie să știți despre utilizarea șirurilor în Java

Odată ce începeți să învățați Java, clasa String vă va atrage atenția, datorită proprietăților sale unice.





Puteți crea și manipula șiruri în Java mai ușor decât alte limbi. Acest lucru se datorează faptului că clasa String oferă diverse funcții.





Pe baza acestor caracteristici, există mai multe metode pentru a genera și edita șiruri în funcție de preferințe și nevoi. În mod similar, multe vor depinde de aplicația dvs. și de locul în care trebuie utilizate șirurile.





În ce sunt diferite șirurile Java?

Dacă ați lucrat anterior cu limbajul C, știți că șirurile din C sunt o serie de caractere (personaje). Pe de altă parte, șirurile Java sunt imuabile și conțin caractere Unicode.

cum se face transparent fundalul unei imagini

Una dintre caracteristicile cheie care fac șirurile în Java unice este concatenarea. Folosiți doar operatorul de adăugare + pentru a uni două sau mai multe șiruri. Acest lucru nu se poate face cu alte obiecte Java, cum ar fi Punct sau Cerc .



De asemenea, așa cum am menționat anterior, șirurile Java sunt imuabile, adică nu le puteți modifica. De exemplu, metode precum toUpperCase () și toLowerCase () generați un șir complet nou, în loc să faceți modificări la conținutul șirului existent. Acum, codul dvs. va returna acest șir nou generat.

Related: Cum se manipulează textul în PHP cu aceste funcții





O altă zonă în care șirurile sunt diferite este atunci când vine vorba de utilizarea caracterelor nule pentru terminarea șirurilor în limbaje precum C. În Java, șirurile sunt obiecte susținute de matrice de caractere. Dacă doriți să citiți conținutul șirului dvs. în modul în care matricele de caractere le reprezintă, folosind toCharArray () metoda va face treaba.

Compararea șirurilor în Java este, de asemenea, mai convenabilă decât în ​​alte limbaje de programare. În loc să scrieți un bloc lung de cod pentru compararea șirurilor, puteți utiliza fișierul egal () metoda de a compara două sau mai multe șiruri utilizate în orice program. Acest lucru se datorează în principal faptului că, în Java, egal metoda este suprascrisă de clasa String, ceea ce face din compararea șirurilor o bucată de tort.





Într-o notă similară, căutarea în șiruri de caractere în Java este, de asemenea, fără probleme. În timp ce utilizați expresii regulate sau metode precum lastIndexOf () și Index de(), puteți căuta segmente de șiruri și puteți întoarce valori după identificarea unei potriviri. De asemenea, puteți utiliza expresii regulate pentru a tăia și împărți șiruri diferite și a le utiliza individual pentru o gamă largă de utilizări în orice program.

Cum sunt stocate corzile în memorie?

Acum, că știți ce face ca șirurile din Java să fie diferite și benefice, să explorăm clasa String. Dacă știți ceva sau două despre gestionarea memoriei în Java, atunci trebuie să vă ocupați de cele două entități cheie ale acestuia: heap și stack.

Stiva este utilizată pentru a executa procese și operațiuni după ce a fost apelată de un program Java, în timp ce heap stochează conținut - necesar pentru a rula și a executa codul în mod eficient. Deci, cum este relevantă gestionarea memoriei în cazul șirurilor?

Acest lucru se datorează faptului că clasa String și literele string din Java primesc un tratament diferit. Acest lucru indică faptul că literelor șirului li se atribuie spațiu de stocare unic în memoria heap, denumită String Constant Pool. Prin urmare, ori de câte ori utilizați literele șirului pentru a crea obiecte șir în Java, String Constant Pool le stochează.

Dimpotrivă, când utilizați nou cuvânt cheie pentru a crea obiecte șir, Java le va trata la fel ca orice alt obiect și le va trimite la heap pentru stocare.

Exemplu de litere de șir

Acum, că știți suficient despre obiectele șir, să parcurgem un exemplu de litere șir:


public class muostrings {
public static void main(String args[])
{
String himuo = 'Hello World from MUO';
System. out .println (himuo);
}
}

Aici, literalul șir a creat obiectul String cu conținut Hello World de la MUO. Java va trimite acest obiect la String Constant Pool.

Utilizarea cuvântului cheie nou

Puteți utiliza, de asemenea, nou cuvânt cheie pentru a genera obiecte șir.

Obiectul șir al șirului himuo cu conținut Hello World de la MUO a fost generat de un literal șir și va fi trimis la String Constant Pool. În mod similar, obiectele șir pot fi create și folosind noul cuvânt cheie după cum urmează:


public class muostringsobj {
public static void main(String args[]) {
char [] strArr = { 'M', 'O', 'U'};
String jStr = new String(strArr);
System. out .println( jStr );
}
}

Exemplul de mai sus folosește nou cuvânt cheie pentru a crea un obiect șir. După cum sa explicat anterior, acestea sunt trimise în heap, unde sunt stocate cu alte variabile și obiecte care așteaptă să fie executate de program.

Până acum, trebuie să fiți curios cu privire la String Constant Pool și, pe bună dreptate. Acesta alocă spațiu de pool obiectelor pe baza conținutului obiectului șir. După ce String Constant Pool primește obiecte, le verifică pentru a verifica dacă două obiecte conțin exact același conținut.

Poate două obiecte șir să stocheze același conținut?

Când un literal literal este utilizat pentru a crea un obiect nou, Java Virtual Machine (JVM) revizuiește conținutul obiectului și evaluează dacă acesta există deja în pool. Când un obiect conține conținut care este deja prezent în pool, referința obiectului este returnată fără a crea noul obiect. Dacă trebuie să creați noul obiect, trebuie să vă asigurați că conținutul este distinct și unic.

Cu toate acestea, dacă utilizați nou cuvânt cheie pentru a crea un șir nou, acesta va fi procesat diferit. Când utilizați nou cuvânt cheie pentru a crea un șir nou, acesta va fi generat, indiferent dacă acesta conține același conținut ca șirul existent.

Acest lucru indică faptul că două obiecte șiruri existente stocate în memoria heap pot permite să conțină același conținut; acest lucru este diferit de obiectele șir stocate în String Constant Pool. Puteți dovedi acest lucru și cu operatorul ==; returnează adevărat dacă sunt comparate două obiecte cu aceeași adresă fizică.


public class comparingStrngs {
public static void main(String[] args)
{
String firstLiteral = 'muo1';
String secondLiteral = 'muo1';
System. out .println(firstLiteral == secondLiteral);
String firstKeyword = new String('muo2');
String secondKeyword = new String('muo2');
System. out .println(firstKeyword == secondKeyword);
}
}

Acum puteți înțelege cu ușurință șirurile din Java

În acest articol, ați aflat cum sunt diferite șirurile în Java, modalitățile de utilizare a șirurilor în Java, gestionarea memoriei șirurilor în Java și alte detalii importante despre modul în care funcționează șirurile. Pentru a vă testa înțelegerea, de ce nu scrieți un program Java pentru a concatena două șiruri?

Acțiune Acțiune Tweet E-mail Învățați Python? Iată Cum se manipulează șirurile

Utilizarea și manipularea șirurilor în Python poate părea dificilă, dar este înșelător de simplă.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Java
Despre autor Usman Ghani(4 articole publicate)

Usman este un marketer de conținut care a ajutat mai multe companii cu creștere organică pe platformele digitale. Îi place atât programarea, cât și scrierea, ceea ce înseamnă că scrierea tehnică este ceva ce îi place foarte mult. Când nu funcționează, lui Usman îi place să petreacă timp vizionând emisiuni TV, urmărind greierul și citind despre analiza datelor.

Mai multe de la Usman Ghani

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona