StringBuffer vs StringBuilder
Java çox məşhur obyekt yönümlü dildir. Java-da String sinfi dəyişdirilə bilməyən (bir dəfə işə salınan) simvollar ardıcıllığını saxlamaq üçün təmin edilir. Alternativ olaraq, Java proqramlaşdırma dili iki növ dəyişən simvol ardıcıllığını təmin edir. Yəni, proqramçılar müəyyən String-i dəyişdirməli olduqda (insializasiyadan sonra) String sinfi əvəzinə StringBuffer sinfindən və ya StringBuilder sinfindən istifadə etməlidirlər. StringBuffer JDK 1.0-da, StringBuilder sinfi isə JDK 1.5-də, əslində StringBuffer sinfinin əvəzedicisi kimi (tək mövzu mühitləri üçün) təqdim edilmişdir.
StringBuffer nədir?
StringBuffer sinfi JDK 1.0-da təqdim edildi. StringBuffer sinfi java.lang paketinə aiddir və ümumi java.lang.obyektindən miras alınır. Proqramçılar onu daha da genişləndirə bilməzlər, çünki bu, son sinifdir. StringBuffer sinfi Serializable, Appendable və CharSequience interfeyslərini həyata keçirir. StringBuffer sinfinin obyekti dəyişən və mövzu üçün təhlükəsiz olan simvollar ardıcıllığını saxlaya bilər. Bu o deməkdir ki, o, String obyektinə çox bənzəyir, lakin simvolların ardıcıllığı (uzunluq və məzmun) StringBuffer obyekti işə salındıqdan sonra istənilən vaxt dəyişdirilə bilər. Bununla belə, bu, StringBuffer sinfinin təqdim etdiyi xüsusi metodlardan istifadə etməklə edilməlidir. StringBuffer sinfində iki əsas əməliyyat var. Onlar append() və insert() metodları ilə təmin edilir. Bu üsullar həddən artıq yüklənir, buna görə də tam və uzun kimi istənilən növ məlumatları qəbul edə bilirlər. Hər iki üsul əvvəlcə hər hansı girişi sətirə çevirir və sonra müvafiq sətir simvollarını mövcud Stribbuffer obyektinə əlavə edir (əlavə edir və ya daxil edir).append() metodu çevrilmiş sətri mövcud StringBuffer obyektinin sonuna əlavə edir, insert() metodu isə daxiletmə simvollarını göstərilən daxiletmə nöqtəsinə əlavə edir.
StringBuilder nədir?
StringBuilder sinfi JDK 1.5-də təqdim edildi. StringBuilder API StringBuffer API ilə çox oxşardır. Əslində, StringBuilder sinfi StringBuffer sinfinin əvəzedicisi kimi təqdim edildi (tək mövzulu proqramlar üçün). StringBuilder sinfi java.lang paketinə aiddir və ümumi java.lang.object-dən miras alınır. Bu, son sinifdir və proqramçılar onu genişləndirə bilməzlər. StringBuilder sinfi Serializable, Appendable və CharSequience interfeyslərini həyata keçirir. StringBuilder sinfinin obyekti dəyişən, lakin mövzu üçün təhlükəsiz olmayan simvollar ardıcıllığını saxlaya bilər. Bu o deməkdir ki, o, String obyektinə çox bənzəyir, lakin sətir istənilən vaxt dəyişdirilə bilər. Lakin StringBuilder sinfi sinxronizasiya təmin etmir və buna görə də StringBuffer sinfindən istifadə etməkdən daha sürətli olduğu iddia edilir. StringBuilder sinfi, StringBuffer sinfində olduğu kimi eyni funksionallıqla append() və insert() metodlarını təmin edir.
StringBuffer və StringBuilder arasındakı fərq nədir?
Baxmayaraq ki, StringBuilder və StringBuffer sinifləri Java-da dəyişən simvol ardıcıllığı üçün istifadə oluna bilər, onların əsas fərqi var. StringBuffer sinfindən fərqli olaraq, StringBuilder sinfi mövzu üçün təhlükəsiz deyil və sinxronizasiya təmin etmir. Buna görə də, StringBuilder sinfinin tək başlıqlı tətbiqlərdə StringBuffer sinfi əvəzinə istifadə edilməsi tövsiyə olunur, çünki StringBuilder sinfinin StringBuffer sinfindən (normal şəraitdə) daha sürətli olacağı iddia edilir.