Sobes.tech
Junior

Неге биз `new String()` конструкторун колдонуп жол түзбөйбүз?

sobes.tech AI

AIден жооп

new String() колдонуу менен жол түзүү ар дайым жаңы String объектисин жаратат, анткени ошол эле мааниге ээ жол String Poolдо болсо дагы.

Анын ордуна, жол лейтералдары (мисалы, "салам") String Poolго жайгаштырылат. Эгер ошол мааниге ээ жол String Poolдо болсо, анда бар объект колдонулат. Литерлерди колдонуу JVMнин эс тутумун оптималдаштырууга мүмкүндүк берет.

Ошондуктан, new String() ашыкча эс тутум сарптоого алып келет жана зарыл эмес объекттерди түзүү аркылуу иштөө ылдамдыгын төмөндөтүшү мүмкүн. Биз жол лейтералдарын же башка жол түзүү ыкмаларын (мисалы, String.valueOf()) ресурстарды үнөмдөө үчүн колдонобуз.

// Туура эмес. Ар дайым жаңы объект түзөт.
String str1 = new String("салам");

// Туура. String Pool колдонулат, бар объектти колдонушу мүмкүн.
String str2 = "салам";

// Салыштыруунун жыйынтыгы айырмаланышы мүмкүн
System.out.println(str1 == str2); // Көпчүлүк учурда false, анткени булар ар башка объекттер