Jump to content

[JAVA] Clasa String


TLG Andrei26
 Share

Recommended Posts

Clasa String

 

  • Un literal String este o secventa de caractere cuprinsa intre ghilimele (exemplu: "Ana are mere"). Daca se doreste afisarea ghilimelelor, atunci se foloseste \" , iar \n pentru trecerea pe linie noua.
  • Crearea unei variabile String se realizeaza exact ca si in cazul celorlalte variabile.
  • String sir = "Primul sir";
    sir = "Al doilea sir";

    Cand se atribuie unei variabile de tip String o alta valoare, vechea referinta se pierde, valoarea sa urmand a fi eliberata automat din memorie de catre colectorul de gunoaie. Se mai spune ca obiectele String sunt fixe (nemodificabile).

  • Daca un sir se initializeaza cu un literal String, atunci i se va atribui adresa acestuia din memorie. Literalii String sunt pastrati in tabela de literali. Operatorul == aplicat pentru doua String-uri testeaza daca acestea pointeaza catre aceeasi adresa de memorie. Exemplu:

// literalul "abc" are o adresa fixa din memorie
String a1 = "abc";
// a1 si b1 pointeaza la aceeasi adresa de memorie
String b1 = "abc;
if(a1==b1)
  System.out.println("1. Egalitate");
else
  System.out.println("1. Diferenta");

String a2 = "abc";
// b2 va pointa la alta adresa de memorie fata de a2
String b2 = new String("abc");

if(a2==b2)
  System.out.println("2. Egalitate");
else
  System.out.println("2. Diferenta");

Programul va afisa:

 

1. Egalitate

2. Diferenta

 

  • Utilizarea operatorului new pentru un String conduce in momentul executiei codului la crearea unui spatiu in memoria programului, si nu in tabela de literali. Putem stabili ca un String creat cu new sa fie plasat in tabela de literali pentru o reutilizare ulterioara sau pentru refolosirea unui String identic din tabela de literali. Astfel putem utiliza metoda intern() din clasa String. Exemplu:
String a1 = new String("abc");
String b1 = new String("abc");
String a2 = a1.intern(); //a2 se afla in tabela de literali
String b2 = b1.intern(); //b2 se afla in tabela de literali

//a2 si b2 pointeaza la aceeasi adresa de memorie
if(a2==b2)
  System.out.println("Sirurile pointeaza la aceeasi adresa.");
else
  System.out.println("Sirurile pointeaza la adrese diferite.");

 

Tablouri de String-uri

 

  • Exemplu:

 

String[] nume = new String[5];
nume[0] = "Alex";
nume[1] = "Bogdan";
  • Operatorul + conecteaza doua sau mai multe siruri de caractere. Operatorul += creeaza un nou String, adaugand sirul din partea dreapta a operatorului. Exemplu:
String sir1 = "abc" + "def";
String sir2 = "abc";
sir2 += "def";
System.out.println("sir2 = " + sir2);

Afisaj:

 

sir2 = abcdef

 

  • Daca aveti nelamuriri, astept PM. 
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.