የቁልፍ ልዩነት - ሕብረቁምፊ vs StringBuffer vs StringBuilder በጃቫ
String፣ StringBuffer እና String Builder በጃቫ ውስጥ ክፍሎች ናቸው። ሕብረቁምፊ በጃቫ ፕሮግራሚንግ ውስጥ በሰፊው ጥቅም ላይ ይውላል። አንዴ የ String ነገር ከተፈጠረ እነሱን መቀየር አይቻልም። በሕብረቁምፊው ላይ ለውጥ በተፈጠረ ቁጥር አዲስ ሕብረቁምፊ ይፈጥራል። ከነባሩ ሕብረቁምፊ ጋር መጋጠሚያ ቢሆንም እንኳን አዲስ ሕብረቁምፊ ይፈጥራል። ይህ የማስታወስ ብክነትን ያስከትላል. StringBuffer እና StringBuilder በJava ውስጥ ያሉ ክፍሎች ሕብረቁምፊን ለማሻሻል ይጠቅማሉ። በጃቫ ውስጥ በ String, StringBuffer እና StringBuilder መካከል ያለው ቁልፍ ልዩነት String የቁምፊዎች ቅደም ተከተል የሆነ የሕብረቁምፊ አይነት ለመፍጠር ክፍል ነው, StringBuffer የክር ደህንነትን የሚያቀርቡ ሕብረቁምፊዎችን ለማሻሻል የሚያገለግል ክፍል ነው, እና StringBuilder የክር ደህንነትን የማይሰጡ ሕብረቁምፊዎችን ለማሻሻል የሚያገለግል ክፍል።
ሕብረቁምፊ በጃቫ ምንድን ነው?
የሕብረቁምፊ ክፍል በ java.lang ጥቅል ውስጥ ነው። በእያንዳንዱ ጊዜ ፕሮግራመርው ሕብረቁምፊን በፈጠረ ቁጥር የ String አይነት ነገር ነው. ሕብረቁምፊዎች የማይለወጡ ትርጉም ናቸው አንዴ ዕቃው ከተፈጠረ ሊለወጥ አይችልም። እንደ ኢንቲጀር፣ ባይት፣ ተንሳፋፊ፣ ድርብ ያሉ የመጠቅለያ ክፍሎችን በመጠቀም የተፈጠሩ ነገሮች እንዲሁ የማይለወጡ ናቸው። የሕብረቁምፊ ቃል በቃል በድርብ ጥቅሶች ውስጥ ተዘግቷል። ለምሳሌ. "ሰላም ልዑል". ቃል በቃል ሕብረቁምፊ በተፈጠረ ቁጥር ጃቫ ቨርቹዋል ማሽን (JVM) የ String ቋሚ ገንዳውን ይፈትሻል። ሕብረቁምፊው ካለ፣ የሕብረቁምፊ ቋሚ ገንዳ ማጣቀሻ ይመለሳል። አዲስ ሕብረቁምፊ ከሆነ ያ ነገር የተፈጠረው በ String ቋሚ ገንዳ ውስጥ ነው።
ምስል 01፡ የጃቫ ፕሮግራም String፣ StringBuffer እና StringBuilder
ከታች ያለውን ኮድ ይመልከቱ።
ሕብረቁምፊ s1="ሄሎ"፤
s1=s1 + “ዓለም”፤
System.out.println(s1)፤
በመጀመሪያው መግለጫ s1 የሚያመለክተው በ String ቋሚ ገንዳ ውስጥ ያለውን "ሄሎ" ነው። በሁለተኛው መግለጫ JVM ነባሩን ሕብረቁምፊ አይለውጥም. በምትኩ፣ እንደ “ሄሎ ዓለም” አዲስ ሕብረቁምፊ ይፈጥራል እና s1 አሁን ያንን አዲሱን ሕብረቁምፊ እየጠቀሰ ነው። የ"ሄሎ" ነገር አሁንም በ String ቋሚ ገንዳ ውስጥ አለ።
ኮድ ካለ እሱም
ሕብረቁምፊ s1="ሄሎ"፤
ሕብረቁምፊ s2=s1፤
s1,s2 ሁለቱም የሕብረቁምፊውን ነገር "ሄሎ" ያመለክታሉ።
StringBuffer በጃቫ ምንድን ነው?
StringBuffer ክፍል የሕብረቁምፊ ዕቃዎችን ተለዋዋጭ ለማድረግ ይጠቅማል። ስለዚህ, እነዚህ ነገሮች ሊሻሻሉ ይችላሉ. StringBuffer አራት ግንበኞችን ይገልፃል። StringBuffer() StringBuffer(int size)፣ StringBuffer(String str)፣ StringBuffer (charSequence ch)
ከታች ያለውን ኮድ ይመልከቱ፣
StringBuffer s1=አዲስ StringBuffer("ሄሎ")፤
s1.append("አለም")፤
System.out.println(s1)፤
በመግለጫ 1፣ s1 የሚያመለክተው በአንድ ክምር ውስጥ ያለውን “ሄሎ” ነገር ነው። ነገሩ የሚለዋወጥ ነው ምክንያቱም StringBuffer በመጠቀም የተፈጠረ ነው። በአረፍተ ነገር 2 ላይ፣ "አለም" ከተመሳሳይ የ"ሄሎ" ሕብረቁምፊ ነገር ጋር ተያይዟል።
በ StringBuffer ክፍል የተፈጠሩ የሕብረቁምፊ ነገሮች ማህደረ ትውስታን መቆጠብ ይችላሉ። StringBuffer የክር ደህንነትን ይሰጣል ምክንያቱም ሁለት ክሮች በ StringBuffer ክፍል ውስጥ አንድ አይነት ዘዴ በአንድ ጊዜ መድረስ አይችሉም። የክር ደህንነት StringBuffer አፈጻጸምን ይቀንሳል። StringBuffer ክፍል እንደ አባሪ() ፣ አስገባ() ፣ reverse() ፣ ምትክ()። ያሉ ዘዴዎችን ይይዛል።
StringBuilder በጃቫ ምንድን ነው?
StringBuilder ክፍል የሕብረቁምፊ ዕቃዎችን ተለዋዋጭ ለማድረግ ይጠቅማል። ስለዚህ, እነዚህ ነገሮች ሊሻሻሉ ይችላሉ. ተግባራዊነቱ ከ StringBuffer ጋር ተመሳሳይ ነው፣ ነገር ግን ይህ የክር ደህንነትን አይሰጥም።StringBuilder እንደ StringBuilder()፣ StringBuilder(int size)፣ StringBuilder(String str) ያሉ ግንበኞች አሉት።
ከታች ያለውን ኮድ ይመልከቱ።
StringBuilder s1=አዲስ StringBuilder("ሄሎ")፤
s1.append("አለም")፤
System.out.println(s1)፤
በመግለጫ 1፣ s1 የሚያመለክተው በአንድ ክምር ውስጥ ያለውን “ሄሎ” ነገር ነው። ነገሩ የሚለዋወጥ ነው ምክንያቱም StringBuilder በመጠቀም የተፈጠረ ነው። በአረፍተ ነገር 2፣ “ዓለም” ከተመሳሳይ የ“ሄሎ” ሕብረቁምፊ ነገር ጋር ተያይዟል። ሙሉ ለሙሉ አዲስ የሆነ የሕብረቁምፊ ነገር መፍጠር የለም።
ከSringBuilder ክፍል ጋር የተፈጠሩ የሕብረቁምፊ ነገሮች ማህደረ ትውስታን መቆጠብ ይችላሉ። ከ StringBuffer በተለየ StringBuilder የክር ደህንነትን አይሰጥም ምክንያቱም ሁለት ክሮች በ StringBuilder ክፍል ውስጥ አንድ አይነት ዘዴን በአንድ ጊዜ ማግኘት ይችላሉ። StringBuilder ክፍል እንደ አባሪ() ፣ አስገባ() ፣ reverse() ፣ ምትክ()። ያሉ ዘዴዎችን ይይዛል።
በጃቫ ውስጥ በ String, StringBuffer እና StringBuilder መካከል ያለው ተመሳሳይነት ምንድን ነው?
ሁሉም ሕብረቁምፊዎችን ለመፍጠር ጥቅም ላይ ሊውል ይችላል።
በጃቫ ውስጥ በ String StringBuffer እና StringBuilder መካከል ያለው ልዩነት ምንድን ነው?
ሕብረቁምፊ vs StringBuffer vs StringBuilder |
|
ሕብረቁምፊ | ሕብረቁምፊው የሕብረቁምፊ አይነት ለመፍጠር የሚያገለግል የጃቫ ክፍል ነው፣ይህም የቁምፊዎች ቅደም ተከተል ነው። |
StringBuffer | StringBuffer የጃቫ ክፍል ሲሆን የሕብረቁምፊ ዕቃዎችን ለመፍጠር የሚያገለግል ሲሆን ይህም በክር ደህንነት ሊሻሻል ይችላል። |
StringBuilder | StringBuilder የሕብረቁምፊ ዕቃዎችን ለመፍጠር የሚያገለግል ክፍል ነው፣ይህም ያለክር ደህንነት ሊሻሻል ይችላል። |
ተለዋዋጭነት | |
ሕብረቁምፊ | ሕብረቁምፊው የማይለወጥ ክፍል ነው። |
StringBuffer | StringBuffer የሚቀየር ክፍል ነው። |
StringBuilder | StringBuilder ተለዋዋጭ ክፍል ነው። |
የክር ደህንነት | |
ሕብረቁምፊ | የሕብረቁምፊ ዘዴዎች ደህንነቱ የተጠበቀ ነው። |
StringBuffer | የ StringBuffer ዘዴዎች በክር-አስተማማኝ እና የተመሳሰሉ ናቸው። |
StringBuilder | የ StringBuilder ዘዴዎች ደህንነቱ በተጠበቀ ሁኔታ በክር አልተጣመሩም እና አልተመሳሰሉም። |
አፈጻጸም | |
ሕብረቁምፊ | ገመዱ ፈጣን ነው። |
StringBuffer | StringBuffer ቀርፋፋ ነው። |
StringBuilder | StringBuilder ፈጣን ነው። |
ማጠቃለያ - ሕብረቁምፊ vs StringBuffer vs StringBuilder በጃቫ
String፣ StringBuffer እና StringBuilder ተመሳሳይ ይመስላሉ፣ነገር ግን የተለያየ ትርጉም አላቸው። እነዚህ ሁሉ የጃቫ ክፍሎች ናቸው። በጃቫ ውስጥ በ String, StringBuffer እና StringBuilder መካከል ያለው ልዩነት, StringBuilder የቁምፊዎች ስብስብ የሆነ ነገር ለመፍጠር ክፍል ነው, StringBuffer ደግሞ ሕብረቁምፊዎችን ለማሻሻል እና የክር ደህንነትን ለማቅረብ የሚያገለግል ክፍል ነው የክር ደህንነትን የማያቀርብ ሕብረቁምፊዎችን ለማሻሻል የሚያገለግል ክፍል።
የፒዲኤፍ ሕብረቁምፊን ከ StringBuffer vs StringBuilder በጃቫ አውርድ
የዚህን ጽሁፍ ፒዲኤፍ ስሪት አውርደው እንደ ጥቅስ ማስታወሻ ከመስመር ውጭ ዓላማ መጠቀም ይችላሉ። እባኮትን የፒዲኤፍ ሥሪት እዚህ ያውርዱ በጃቫ በ String StringBuffer እና StringBuilder መካከል ያለው ልዩነት