Junior — Middle
Kokia yra skirtumas greičio ir efektyvumo požiūriu tarp klasių StringBuffer ir StringBuilder Java?
sobes.tech AI
Atsakymas iš AI
Java kalboje StringBuffer ir StringBuilder klasės naudojamos kurti ir keisti eilutes, tačiau tarp jų yra svarbus skirtumas dėl srauto saugumo ir našumo:
-
StringBuffer — srauto saugus (synchronized), tai yra, šios klasės metodai yra sinchronizuoti, kad būtų saugiai naudojami daugiagijose aplinkose. Dėl sinchronizacijos operacijos yra lėtesnės.
-
StringBuilder — nesaugus srautui, neturi sinchronizacijos, todėl veikia greičiau viengijose programose.
Jei programa nenaudoja daugiagijumo dirbant su eilutėmis, rekomenduojama naudoti StringBuilder geresniam našumui. Jei reikalinga saugumas daugiagijose aplinkose, naudokite StringBuffer.
StringBuilder pavyzdys:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" World");
System.out.println(sb.toString());