Middle
Фарқи байни StringBuilder ва StringBuffer чист?
sobes.tech AI
Ҷавоб аз AI
StringBuilder ва StringBuffer дар Java барои эҷод ва тағйир додани сатрҳо истифода мешаванд, аммо фарқҳои калидӣ доранд:
-
Бехатарии даргирӣ (Thread Safety):
StringBufferбехатар барои даргирӣ аст. Методҳои он синхронизатсия шудаанд, ки онро барои муҳитҳои бисёрдаргирӣ мувофиқ месозад, аммо иҷрои онро суст мекунад.StringBuilderбехатар барои даргирӣ нест. Методҳои он синхронизатсия нашудаанд, ки онро дар муҳитҳои якдаргирӣ тезтар мекунад.
-
Кардани иҷро (Performance):
StringBuilderодатан тезтар азStringBufferкор мекунад, зеро хароҷоти синхронизатсия вуҷуд надорад.
-
Истифода:
- Агар шумо дар муҳити якдаргирӣ кор кунед ё бехатарии даргириро талаб накунед, истифодаи
StringBuilderбарои иҷрои беҳтар тавсия дода мешавад. - Агар бехатарии даргирӣ лозим бошад (дар барномаҳои бисёрдаргирӣ), бояд
StringBufferистифода шавад.
- Агар шумо дар муҳити якдаргирӣ кор кунед ё бехатарии даргириро талаб накунед, истифодаи
Маслиҳат барои истифода:
// Истифодаи StringBuffer (бехатар барои даргирӣ)
StringBuffer strBuffer = new StringBuffer("Hello");
strBuffer.append("World");
System.out.println(strBuffer); // Натиҷа: HelloWorld
// Истифодаи StringBuilder (на бехатар барои даргирӣ, тезтар дар муҳитҳои якдаргирӣ)
StringBuilder strBuilder = new StringBuilder("Hello");
strBuilder.append("World");
System.out.println(strBuilder); // Натиҷа: HelloWorld