StringBuffer жана StringBuilder ортосундагы айырма

StringBuffer жана StringBuilder ортосундагы айырма
StringBuffer жана StringBuilder ортосундагы айырма

Video: StringBuffer жана StringBuilder ортосундагы айырма

Video: StringBuffer жана StringBuilder ортосундагы айырма
Video: Сергей Егоров - Jabel — как я потрошил компилятор Java 2024, Июль
Anonim

StringBuffer жана StringBuilder

Java абдан популярдуу объектиге багытталган тил. Java тилинде String классы өзгөртүлбөй турган (бир жолу инициализацияланган) символдордун ырааттуулугун кармоо үчүн берилген. Же болбосо, Java программалоо тили символдордун өзгөрүлмө ырааттуулугунун эки түрүн камсыз кылат. Башкача айтканда, программисттер белгилүү бир Stringди өзгөртүү керек болгондо (инициализациядан кийин), алар 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 ортосунда кандай айырма бар?

СтрингBuilder жана StringBuffer класстары Java'да өзгөрүлүүчү символдордун ырааттуулугу үчүн колдонулса да, алардын негизги айырмасы бар. StringBuffer классынан айырмаланып, StringBuilder классы жиптен коопсуз эмес жана синхрондоштурууну камсыз кылбайт. Ошондуктан, StringBuilder классын бир жиптүү тиркемелерде StringBuffer классынын ордуна колдонуу сунушталат, анткени StringBuilder классы StringBuffer классынан (кадимки шарттарда) бир топ ылдамыраак болот деп айтылат.

Сунушталууда: