Sobes.tech
Junior — Middle

Механизми кори пулҳои сатр дар забони барномасозии Java-ро шарҳ диҳед

sobes.tech AI

Ҷавоб аз AI

Дар Java, пули сатрҳо (String Pool) ҷойи махсус дар хотира аст, ки дар он литералҳои сатр ва нусхаҳои беназири сатрҳо нигоҳ дошта мешаванд.

Вақте ки як сатр бо истифода аз литерал эҷод мешавад, масалан:

String s = "салом";

Java санҷида мебинад, ки чунин сатр аллакай дар пул ҳаст ё не. Агар бошад, ба он ишора мекунад; агар не, илова мекунад.

Ин кӯмак мекунад, ки хотира сарфа шавад ва муқоисаи сатрҳо тезтар шавад (оператори == ишораҳоро муқоиса мекунад).

Агар сатр тавассути конструктор эҷод шавад:

String s = new String("салом");

як объекти нав дар heap эҷод мешавад, ки бо пул алоқаманд нест, ба истиснои он ки intern() explicitly даъват карда шавад:

String s2 = new String("салом").intern();

Он гоҳ, s2 ба сатр аз пул ишора мекунад.

Ин тариқ, пули сатрҳо кӯмак мекунад, ки такрори сатрҳои якхела дар хотира пешгирӣ шавад ва истифодаи онҳоро оптимизатсия кунад.