הבדל בין StringBuffer ל-StringBuilder

הבדל בין StringBuffer ל-StringBuilder
הבדל בין StringBuffer ל-StringBuilder

וִידֵאוֹ: הבדל בין StringBuffer ל-StringBuilder

וִידֵאוֹ: הבדל בין StringBuffer ל-StringBuilder
וִידֵאוֹ: "אף אחד לא רוצה קפה של עבדים": רז פרוגל, פעיל למען סחר הוגן 2024, נוֹבֶמבֶּר
Anonim

StringBuffer vs StringBuilder

Java היא שפה מאוד פופולרית מונחה עצמים. ב-Java, המחלקה String מסופקת כדי להחזיק רצף של תווים שלא ניתן לשנות (לאחר האתחול). לחלופין, שפת התכנות Java מספקת שני סוגים של רצפי תווים הניתנים לשינוי. כלומר, כאשר המתכנתים צריכים לשנות String מסוים (לאחר אתחול), הם צריכים להשתמש במחלקה StringBuffer או במחלקה StringBuilder, במקום במחלקה String. 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 (בנסיבות רגילות).

מוּמלָץ: