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

תוכן עניינים:

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

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

וִידֵאוֹ: הבדל בין String StringBuffer ל-StringBuilder ב-Java
וִידֵאוֹ: Nylon String vs Steel String Guitar! - Which One Should You buy? 2024, נוֹבֶמבֶּר
Anonim

הבדל מפתח - String vs StringBuffer vs StringBuilder ב-Java

String, StringBuffer ו-String Builder הם מחלקות ב-Java. מחרוזת נמצאת בשימוש נרחב בתכנות Java. לאחר יצירת אובייקט של String, לא ניתן לשנות אותם. בכל פעם שמתרחש שינוי במחרוזת, הוא יוצר מחרוזת חדשה. גם אם זה שרשור למחרוזת קיימת זה יוצר מחרוזת חדשה. זה גורם לבזבוז זיכרון. מחלקות StringBuffer ו-StringBuilder ב-Java משמשות לשינוי String. ההבדל העיקרי בין String, StringBuffer ו-StringBuilder ב-Java הוא ש-String היא מחלקה ליצירת אובייקט מסוג String שהוא רצף של תווים, StringBuffer היא מחלקה המשמשת לשינוי מחרוזות המספקות בטיחות חוטים, ו-StringBuilder הוא מחלקה המשמשת לשינוי מחרוזות שאינן מספקות בטיחות חוטים.

מה זה מחרוזת ב-Java?

מחלקה מחרוזת נמצאת בחבילת java.lang. בכל פעם שהמתכנת יוצר String, זהו אובייקט מסוג String. מחרוזות הן משמעות בלתי ניתנת לשינוי ברגע שהאובייקט נוצר, לא ניתן לשנותו. אובייקטים שנוצרו באמצעות מחלקות עטיפה כגון אינטגר, Byte, Float, Double ניתנים לשינוי. מחרוזת מילולית מוקפת במירכאות כפולות. לְמָשָׁל "שלום עולם". בכל פעם שנוצרת מחרוזת מילולית, ה-Java Virtual Machine (JVM) בודק את מאגר הקבועים של מחרוזת. אם המחרוזת קיימת, מוחזרת הפניה למאגר הקבוע של המחרוזת. אם מדובר במחרוזת חדשה, האובייקט הזה נוצר במאגר הקבוע של המחרוזת.

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

איור 01: תוכנית Java באמצעות String, StringBuffer ו-StringBuilder

עיין בקטע הקוד שלהלן.

String s1="שלום";

s1=s1 + "World";

System.out.println(s1);

בהצהרה הראשונה, s1 מתייחס ל-"Hello" במאגר הקבוע של מחרוזת. בהצהרה השנייה, JVM אינו משנה את המחרוזת הקיימת. במקום זאת, הוא יוצר מחרוזת חדשה בשם "Hello World" ו-s1 מתייחס כעת למחרוזת החדשה הזו. האובייקט היוצא "שלום" עדיין קיים במאגר הקבועים של מחרוזת.

אם יש קוד שהוא, String s1="שלום";

String s2=s1;

s1, s2 שניהם יתייחסו לאובייקט המחרוזת "Hello".

מהו StringBuffer ב-Java?

מחלקה StringBuffer משמשת כדי להפוך אובייקטים של String לניתנים לשינוי. לכן, אובייקטים אלה ניתנים לשינוי. StringBuffer מגדיר ארבעה בנאים. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

עיין בקוד למטה, StringBuffer s1=new StringBuffer(“Hello”);

s1.append(“World”);

System.out.println(s1);

בהצהרה 1, s1 מתייחס לאובייקט "הלו" בערימה. האובייקט ניתן לשינוי מכיוון שהוא נוצר באמצעות StringBuffer. במשפט 2, "עולם" מצורף לאותו אובייקט מחרוזת "שלום".

מחרוזת אובייקטים שנוצרו עם מחלקה StringBuffer יכולים לחסוך זיכרון. StringBuffer מספק בטיחות חוטים מכיוון ששני חוטים אינם יכולים לגשת לאותה שיטה במחלקה StringBuffer בו זמנית. בטיחות חוטים מורידה את ביצועי StringBuffer. המחלקה StringBuffer מכילה שיטות כגון append(), insert(), reverse(), replace().

מהו StringBuilder ב-Java?

מחלקה StringBuilder משמשת כדי להפוך אובייקטים של String לניתנים לשינוי. לכן, אובייקטים אלה ניתנים לשינוי. הפונקציונליות דומה ל-StringBuffer, אבל זה לא מספק בטיחות חוט.ל-StringBuilder יש בנאים כגון StringBuilder(), StringBuilder(int size), StringBuilder(String str).

עיין בקוד שלהלן.

StringBuilder s1=new StringBuilder(“Hello”);

s1.append(“World”);

System.out.println(s1);

בהצהרה 1, s1 מתייחס לאובייקט "הלו" בערימה. האובייקט ניתן לשינוי מכיוון שהוא נוצר באמצעות StringBuilder. בהצהרה 2, "עולם" מצורף לאותו אובייקט מחרוזת "שלום". אין יצירה של אובייקט מחרוזת חדש לחלוטין.

עצמי מחרוזת שנוצרו עם המחלקה StringBuilder יכולים לחסוך זיכרון. שלא כמו ב-StringBuffer, StringBuilder אינו מספק בטיחות חוטים מכיוון ששני חוטים יכולים לגשת לאותה שיטה במחלקה StringBuilder בו-זמנית. המחלקה StringBuilder מכילה שיטות כגון append(), insert(), reverse(), replace().

מהו הדמיון בין String, StringBuffer ו-StringBuilder ב-Java?

כל ניתן להשתמש כדי ליצור מחרוזות

מה ההבדל בין StringStringBuffer ל-StringBuilder ב-Java?

String vs StringBuffer vs StringBuilder

מחרוזת המחרוזת היא מחלקת Java המשמשת ליצירת אובייקט מסוג String, שהוא רצף של תווים.
StringBuffer StringBuffer הוא מחלקת Java המשמשת ליצירת אובייקטי String, אותם ניתן לשנות באמצעות בטיחות חוטים.
StringBuilder StringBuilder הוא מחלקה המשמשת ליצירת אובייקטי מחרוזת, אותם ניתן לשנות ללא בטיחות חוטים.
Mutability
מחרוזת המחרוזת היא מחלקה בלתי ניתנת לשינוי.
StringBuffer StringBuffer הוא מחלקה ניתנת לשינוי.
StringBuilder StringBuilder הוא מחלקה ניתנת לשינוי.
בטיחות שרשור
מחרוזת שיטות של מחרוזת בטוחות.
StringBuffer שיטות של StringBuffer בטוחות לשרשור ומסונכרנות.
StringBuilder שיטות של StringBuilder אינן בטוחות בהשרשור ואינן מסונכרנות.
ביצועים
מחרוזת המחרוזת מהירה.
StringBuffer StringBuffer איטי.
StringBuilder StringBuilder מהיר.

סיכום – String vs StringBuffer vs StringBuilder ב-Java

מחרוזת, StringBuffer ו-StringBuilder נראים זהים, אבל יש להם משמעויות שונות. כל אלה הם שיעורי Java. ההבדל בין String, StringBuffer ו-StringBuilder ב-Java הוא ש-String הוא מחלקה ליצירת אובייקט מסוג String, שהוא קבוצה של תווים, StringBuffer היא מחלקה המשמשת לשינוי מחרוזות ולספק בטיחות חוטים, בעוד StringBuilder הוא מחלקה המשמשת לשינוי מחרוזות שאינן מספקות בטיחות חוטים.

הורד את מחרוזת PDF vs StringBuffer vs StringBuilder ב-Java

ניתן להוריד את גרסת ה-PDF של מאמר זה ולהשתמש בה למטרות לא מקוונות לפי הערת ציטוט. אנא הורד כאן גרסת PDF ההבדל בין String StringBuffer ל-StringBuilder ב-Java

מוּמלָץ: