Java String Pool
Java'da String'ler değiştirilemezdir (immutable). JVM String'ler için ayrılan yeri optimum şekilde yönetebilmek için her String sabit değerinin sadece bir kopyası olacak şekilde String havuzunda tutar. Buna interning denir.
Eğer bir String değişkeni oluşturur ve ona değer atarsak JVM havuzda aynı değerde string olup olmadığını arar ve varsa ona referans verir. Aynı değerdeki stringler aynı yere referans verirler. Eğer havuzda(pool) o string'i bulmazsa havuza yeni stringi ekler(interning) ve onun adresini döner.
String baskent= "Ankara";
String ikametEdilenIl = "Ankara";
assertThat(baskent).isSameAs(ikametEdilenIl );
new keyword'ü ile oluşturulan String nesneleri ise heap'te oluşturulur ve ayrı yerlerde saklanır.
String baskent = "Ankara";
String ikametEdilenIl = new String("Ankara");
assertThat(baskent ).isNotSameAs(ikametEdilenIl );
Comments
Post a Comment