עבור לתוכן

שינוי STRING בJAVA...

Featured Replies

פורסם

אני לומד עכשיו JAVA מספר (מתכנת C במקור), ורשום בו שאחרי שמגדירים STRING אז אי אפשר לשנות את תוכנו.

בניסיונות שעשיתי (בeclipse אם זה משנה), הצלחתי ללא בעיה.

מישהו יודע אולי למה הם התכוונו?

פורסם

כשאתה משנה string ב-java (וב-c#) אתה בעצם יותר אובייקט חדש שמכיל את התווים החדשים.

אין אפשרות לשנות תוים ב-string קיים.

אם תעשה משהו כזה

string s1 = "abc";

string s2 = s1;

s1="qwer";

בסיום הריצה s1 שווה ל-qwer אבל s2 עדיין שווה ל-abc

אם אתה רוצה לשנות אובייקט string קיים בלי ליצור Instance חדש אתה צריך להשתמש ב-StringBuilder

פורסם
  • מחבר

אני קצת מבולבל,

אתה אומר string s1 = "abc"

ואז s1 = "qwer"

וS1 מקבל את הסטרינג החדש "qwer", זה לא נקרא לשנות תווים בstring הקיים?

פורסם

לא.

זה יוצר סטרינג חדש שמכיל "qwer", והופך את s1 למצביע אליו.

יש שפות שבהן אפשר לעשות משהו כזה:


string s = "qwer";
s[0] = 'x';

ואז s יכיל "xwer". זה מה שנקרא לשנות את המחרוזת.

פורסם

נו סתם לא היה לי כוח לפרט בדוגמא יותר מידי

אם תעשה

string s1="qwer";

string s2=s1;

s1[0]="a";

בסוף s1 יהיה "awer" ו-s2 יהיה qwer

פורסם
  • מחבר

now i got it :xyxthumbs:

בספר פשוט רשמו שאי אפשר, לו מה קורה אם מנסים בכל זאת ;)

שאלה נוספת: (עפ"י הדוגמא של שניצל).

המידע הקודם (הסטרינג המקורי) הופך לgarbage וימחק מתי שהוא או שהוא נשאר בזיכרון כרגיל?

פורסם

ה-GC (garbage collector) אמור לזרוק אותו מתישהו

פורסם
  • מחבר

תודות :yelclap:

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים