Sobes.tech
Middle

რა განსხვავებაა StringBuilder და StringBuffer-ს შორის?

sobes.tech AI

პასუხი AI-სგან

StringBuilder һәм StringBuffer Java-да жолдарны ясау һәм үзгәртү өчен кулланыла, ләкин төп аерма булып тора:

  • Тармакларның куркынычсызлыгы (Thread Safety):

    • StringBuffer тармаклар өчен куркынычсыз. Аның методлары синхронлаштырылган, бу аны күп тармаклы мохитләргә яраклы итә, ләкин эшләү тизлеген киметә.
    • StringBuilder тармаклар өчен куркынычсыз түгел. Аның методлары синхронлаштырылмаган, бу аны бер тармаклы мохиттә StringBuffer белән чагыштырганда тизрәк итә.
  • Үзгәрешлелек (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