Junior
Zašto ne kreiramo niz koristeći konstruktor new String()?
sobes.tech АИ
Одговор од АИ
Kreiranje niza pomoću new String() uvek kreira novi String objekat na hrpi, čak i ako već postoji niz sa istom vrednošću u String Pool-u.
Nasuprot tome, literali niza (na primer, "zdravo") se smeštaju u String Pool. Ako već postoji niz sa tom vrednošću u String Pool-u, koristi se postojeći objekat. Korišćenje literala omogućava JVM-u da optimizuje korišćenje memorije.
Dakle, new String() dovodi do prekomernog korišćenja memorije i može smanjiti performanse zbog kreiranja nepotrebnih objekata. Preferiramo korišćenje literala niza ili drugih metoda za kreiranje niza (kao što je String.valueOf()) radi uštede resursa.
// Nije preporučljivo. Uvek kreira novi objekat na hrpi.
String str1 = new String("zdravo");
// Preporučljivo. Koristi String Pool, može koristiti postojeći objekat.
String str2 = "zdravo";
// Rezultat poređenja može biti različit
System.out.println(str1 == str2); // Obično false, jer su različiti objekti