StringBuffer vs StringBuilder
ጃቫ በጣም ታዋቂ ነገር ተኮር ቋንቋ ነው። በጃቫ ውስጥ የሕብረቁምፊው ክፍል ሊሻሻሉ የማይችሉ ቁምፊዎችን ቅደም ተከተል እንዲይዝ ቀርቧል (አንድ ጊዜ ከተጀመረ)። በአማራጭ፣ የጃቫ ፕሮግራሚንግ ቋንቋ ሁለት አይነት ተለዋዋጭ ቁምፊዎችን ያቀርባል። ማለትም፣ ፕሮግራመሮች የተወሰነ ሕብረቁምፊን ማሻሻል ሲፈልጉ (ከጅማሬ በኋላ) ከ String ክፍል ይልቅ StringBuffer ክፍል ወይም StringBuilder ክፍልን መጠቀም አለባቸው። StringBuffer በJDK 1.0 ውስጥ ገብቷል እና StringBuilder ክፍል በJDK 1.5 ተዋወቀ፣ በእውነቱ ለ StringBuffer ክፍል (ለአንድ-ክር አከባቢዎች) ምትክ።
SringBuffer ምንድን ነው?
StringBuffer ክፍል በJDK 1.0 ተጀመረ። StringBuffer ክፍል የ java.lang ጥቅል ነው እና ከአጠቃላይ java.lang.object የተወረሰ ነው። የመጨረሻ ክፍል ስለሆነ ፕሮግራመሮች ከዚህ በላይ ማራዘም አይችሉም። StringBuffer ክፍል Serializable, Appendable እና CharSequience በይነገጾችን ተግባራዊ ያደርጋል። የክፍል StringBuffer ነገር ተለዋዋጭ እና በክር-አስተማማኝ የሆኑ ቁምፊዎችን ተከታታይ ይይዛል። ያም ማለት፣ ከ String ነገር ጋር በጣም ተመሳሳይ ነው፣ ነገር ግን የቁምፊዎች ቅደም ተከተል (ርዝመት እና ይዘት) StringBuffer ነገርን ካስጀመርክ በኋላ በማንኛውም ጊዜ ሊቀየር ይችላል። ነገር ግን፣ ያ በ StringBuffer ክፍል የቀረቡትን ልዩ ዘዴዎች በመጠቀም መደረግ አለበት። በ StringBuffer ክፍል ውስጥ ሁለት የመርህ ስራዎች አሉ። የሚቀርቡት በአባሪ() እና በማስገባ() ዘዴዎች ነው። እነዚህ ዘዴዎች ከመጠን በላይ የተጫኑ ናቸው, ስለዚህ እንደ ኢንቲጀር እና ረዥም የመሳሰሉ የማንኛውም አይነት መረጃዎችን መቀበል ይችላሉ. ሁለቱም ዘዴዎች መጀመሪያ ማንኛውንም ግብዓት ወደ ሕብረቁምፊ ይቀይራሉ፣ እና ከዚያ የተዛማጁ ሕብረቁምፊ ቁምፊዎችን ወደ ነባሩ Stribbuffer ነገር ይጨምራሉ (ይጨምረዋል ወይም ያስገባል)።የአባሪ() ዘዴ የተለወጠውን ሕብረቁምፊ ወደ ነባሩ StringBuffer ነገር መጨረሻ ያክላል፣ አስገባ() ዘዴ ደግሞ የግቤት ቁምፊዎችን ወደተገለጸው የማስገቢያ ነጥብ ያክላል።
SringBuilder ምንድን ነው?
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 ክፍል እንደ StringBuffer ክፍል በትክክል ተመሳሳይ ተግባር ያላቸውን አባሪ() እና አስገባ() ስልቶችን ያቀርባል።
በSringBuffer እና StringBuilder መካከል ያለው ልዩነት ምንድን ነው?
ምንም እንኳን StringBuilder እና StringBuffer ክፍሎች በጃቫ ውስጥ ለሚለዋወጡ የቁምፊዎች ቅደም ተከተል መጠቀም ቢችሉም ቁልፍ ልዩነት አላቸው። እንደ StringBuffer ክፍል፣ StringBuilder ክፍል በክር-አስተማማኝ አይደለም፣ እና ምንም ማመሳሰል አይሰጥም። ስለዚህ StringBuilder ክፍል በ StringBuffer ክፍል በነጠላ-ክር አፕሊኬሽኖች ውስጥ ጥቅም ላይ እንዲውል ይመከራል ምክንያቱም StringBuilder ክፍል ከ StringBuffer ክፍል (በተለመደው ሁኔታ) በጣም ፈጣን ይሆናል ስለሚባል።