StringBuffer және StringBuilder
Java - өте танымал нысанға бағытталған тіл. Java тілінде String класы өзгертілмейтін (бір рет инициализацияланған) таңбалар тізбегін ұстау үшін берілген. Немесе Java бағдарламалау тілі өзгермелі таңбалар тізбегінің екі түрін қамтамасыз етеді. Яғни, бағдарламашылар белгілі бір Жолды өзгерту қажет болғанда (инициализациядан кейін), олар String сыныбының орнына StringBuffer сыныбын немесе StringBuilder сыныбын пайдалануы керек. StringBuffer JDK 1.0 жүйесінде және StringBuilder сыныбы JDK 1.5 жүйесінде StringBuffer сыныбының орнына (бір ағынды орталар үшін) енгізілді.
StringBuffer дегеніміз не?
StringBuffer сыныбы JDK 1.0 нұсқасында енгізілді. StringBuffer класы java.lang бумасына жатады және жалпы java.lang.object мұрасынан алынған. Бағдарламашылар оны одан әрі кеңейте алмайды, өйткені бұл соңғы сынып. StringBuffer класы Serializable, Appendable және CharSequience интерфейстерін жүзеге асырады. StringBuffer класының нысаны өзгермелі және ағынға қауіпсіз таңбалар тізбегін сақтай алады. Яғни, ол String нысанына өте ұқсас, бірақ таңбалар тізбегін (ұзындық пен мазмұн) StringBuffer нысанын инициализациялаудан кейін кез келген уақытта өзгертуге болады. Дегенмен, бұл StringBuffer сыныбы ұсынған арнайы әдістерді қолдану арқылы жасалуы керек. StringBuffer сыныбында екі негізгі операция бар. Олар append() және insert() әдістерімен қамтамасыз етіледі. Бұл әдістер шамадан тыс жүктелген, сондықтан олар бүтін және ұзын сияқты кез келген түрдегі деректерді қабылдай алады. Екі әдіс алдымен кез келген кірісті жолға түрлендіреді, содан кейін бар Stribbuffer нысанына сәйкес жолдың таңбаларын қосады (қосады немесе кірістіреді).append() әдісі түрлендірілген жолды бар StringBuffer нысанының соңына қосады, ал insert() әдісі енгізілген таңбаларды көрсетілген кірістіру нүктесіне қосады.
StringBuilder дегеніміз не?
StringBuilder сыныбы JDK 1.5 нұсқасына енгізілді. StringBuilder API StringBuffer API-ге өте ұқсас. Шын мәнінде, StringBuilder сыныбы StringBuffer сыныбының орнына (бір ағынды қосымшалар үшін) ретінде енгізілген. StringBuilder класы java.lang бумасына жатады және жалпы java.lang.object мұрасынан алынған. Бұл соңғы сынып, сондықтан бағдарламашылар оны кеңейте алмайды. StringBuilder класы Serializable, Appendable және CharSequience интерфейстерін жүзеге асырады. StringBuilder класының нысаны өзгермелі, бірақ ағынмен қауіпсіз емес таңбалар тізбегін сақтай алады. Яғни, ол String нысанына өте ұқсас, бірақ жолды кез келген уақытта өзгертуге болады. Бірақ StringBuilder сыныбы синхрондауды қамтамасыз етпейді, сондықтан StringBuffer сыныбын пайдаланудан жылдамырақ деп мәлімдейді. StringBuilder сыныбы append() және insert() әдістерін StringBuffer сыныбына ұқсас функцияларымен қамтамасыз етеді.
StringBuffer және StringBuilder арасындағы айырмашылық неде?
StringBuilder және StringBuffer сыныптары Java тіліндегі өзгермелі таңбалар тізбегі үшін пайдаланылуы мүмкін, бірақ олардың негізгі айырмашылығы бар. StringBuffer сыныбынан айырмашылығы, StringBuilder сыныбы ағынмен қауіпсіз емес және синхрондауды қамтамасыз етпейді. Сондықтан, StringBuilder сыныбын бір ағынды қолданбаларда StringBuffer сыныбының орнына пайдалану ұсынылады, себебі ол StringBuilder сыныбы StringBuffer сыныбынан (қалыпты жағдайларда) әлдеқайда жылдамырақ болады деп мәлімделген.