Sobes.tech
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