Žice u Javi

Žice

Nizovi su nizovi znakova. U Javi Stringje a Object. Sa charnizovima se ne smije brkati jer su znakovi doslovno 1 vrijednost, a ne slijed znakova. I dalje možete koristiti 1 vrijednost u nizu, no poželjno je koristiti charkada provjeravate ima li 1 znak.

String course = "FCC"; System.out.println(course instanceof Object);

Izlaz:

true

String objekt možete stvoriti na sljedeće načine:

  1. String str = "I am a String"; //as a String literal
  2. String str = "I am a " + "String"; //as a constant expression
  3. String str = new String("I am a String"); //as a String Object using the constructor

Možda mislite: Koja je razlika između njih tri?

Pa, korištenje newključne riječi jamči da Stringće se stvoriti novi objekt i u memoriji će biti dodijeljeno novo memorijsko mjesto Heap(kliknite ovdje da biste saznali više). String literali i konstantni stringovi izrazi se memoriraju u vrijeme sastavljanja. Prevoditelj ih stavlja u String Literal Pool kako bi spriječio duplikate i poboljšao potrošnju memorije. Dodjela objekata skupa je i ovaj trik povećava izvedbu tijekom instanciranja nizova. Ako ponovno upotrijebite isti literal, JVM koristi isti objekt. Korištenje gornjeg konstruktora gotovo je uvijek lošiji izbor.

U ovom isječku koda, koliko je String objekata stvoreno?

String str = "This is a string"; String str2 = "This is a string"; String str3 = new String("This is a string");

Odgovor je: Stvorena su 2 string objekta. stri str2oba se odnose na isti objekt. str3ima isti sadržaj, ali je upotreba newprisiljena na stvaranje novog, različitog predmeta.

Kada stvorite String literal, JVM interno provjerava, ono što je poznato kao String pool, da li može pronaći sličan (sadržajno) String objekt. Ako ga pronađe, vraća istu referencu. U suprotnom, jednostavno ide dalje i stvara novi objekt String u spremištu tako da se ista provjera može izvoditi u budućnosti.

To možete testirati pomoću lastavice, brze usporedbe objekata ==i implementirane equals().

System.out.println(str == str2); // This prints 'true' System.out.println(str == str3); // This prints 'false' System.out.println(str.equals(str3)); // This prints 'true'

Evo još jednog primjera kako stvoriti niz u Javi pomoću različitih metoda:

public class StringExample{ public static void main(String args[]) { String s1 = "java"; // creating string by Java string literal char ch[] = {'s','t','r','i','n','g','s'}; String s2 = new String(ch); // converting char array to string String s3 = new String("example"); // creating Java string by new keyword System.out.println(s1); System.out.println(s2); System.out.println(s3); } }

Uspoređujući žice

Ako želite usporediti vrijednost dvije string varijable, ne možete koristiti ==. To je zbog činjenice da će se uspoređivati ​​reference varijabli, a ne vrijednosti koje su s njima povezane. Za usporedbu pohranjenih vrijednosti Nizova koristite metodu jednako.

boolean equals(Object obj)

Vraća true ako su dva objekta jednaka, a inače false.

String str = "Hello world"; String str2 = "Hello world"; System.out.println(str == str2); // This prints false System.out.println(str.equals(str2); // This prints true

Prva je usporedba netačna jer "==" gleda reference, a one nisu iste.

Druga je usporedba istinita jer varijable pohranjuju iste vrijednosti. U ovom slučaju “Hello world”.

U Stringu imamo nekoliko ugrađenih metoda. Slijedi primjer metode String Length ().

public class StringDemo { public static void main(String args[]) { String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); System.out.println( "String Length is : " + len ); } }

To će rezultirati - String Length is : 17

Odgovor je: Stvorena su 2 string objekta. Bilješke

  1. String metode koriste indekse koji se temelje na nuli, osim drugog argumenta substring().
  2. Klasa String je konačna - metode se ne mogu nadjačati.
  3. Kada JVM pronađe String literal, on se dodaje u spremište literal stringa.
  4. Klasa string ima naziv metode length(), dok nizovi imaju duljinu imenovanja atributa.
  5. U javi su objekti niza nepromjenjivi. Nepromjenjiv jednostavno znači neizmijenjiv ili nepromjenjiv. Jednom kada je stvoren objekt niza, njegovi podaci ili stanje ne mogu se mijenjati, već se stvara novi objekt niza.

Duljina niza

"Duljina" niza samo je broj znakova u njemu. Dakle, "hi" je duljina 2, a "Hello" duljina 5. Metoda length () na nizu vraća mu duljinu, poput ove:

String a = "Hello"; int len = a.length(); // len is 5

Ostale metode usporedbe koje se također mogu koristiti na nizu su:

  1. equalsIgnoreCase (): - uspoređuje niz bez uzimanja u obzir osjetljivosti na mala i velika slova.
String a = "HELLO"; String b = "hello"; System.out.println(a.equalsIgnoreCase(b)); // It will print true
  1. compareTo: - uspoređuje vrijednost leksikografski i vraća cijeli broj.
String a = "Sam"; String b = "Sam"; String c = "Ram"; System.out.println(a.compareTo(b)); // 0 System.out.prinltn(a.compareTo(c)); // 1 since (a>b) System.out.println(c.compareTo(a)); // -1 since (c

Original text