Механизми кори пулҳои сатр дар забони барномасозии Java-ро шарҳ диҳед
sobes.tech AI
Ҷавоб аз AI
Дар Java, пули сатрҳо (String Pool) ҷойи махсус дар хотира аст, ки дар он литералҳои сатр ва нусхаҳои беназири сатрҳо нигоҳ дошта мешаванд.
Вақте ки як сатр бо истифода аз литерал эҷод мешавад, масалан:
String s = "салом";
Java санҷида мебинад, ки чунин сатр аллакай дар пул ҳаст ё не. Агар бошад, ба он ишора мекунад; агар не, илова мекунад.
Ин кӯмак мекунад, ки хотира сарфа шавад ва муқоисаи сатрҳо тезтар шавад (оператори == ишораҳоро муқоиса мекунад).
Агар сатр тавассути конструктор эҷод шавад:
String s = new String("салом");
як объекти нав дар heap эҷод мешавад, ки бо пул алоқаманд нест, ба истиснои он ки intern() explicitly даъват карда шавад:
String s2 = new String("салом").intern();
Он гоҳ, s2 ба сатр аз пул ишора мекунад.
Ин тариқ, пули сатрҳо кӯмак мекунад, ки такрори сатрҳои якхела дар хотира пешгирӣ шавад ва истифодаи онҳоро оптимизатсия кунад.