פורסם 2008 ביוני 817 שנים אני לומד עכשיו JAVA מספר (מתכנת C במקור), ורשום בו שאחרי שמגדירים STRING אז אי אפשר לשנות את תוכנו.בניסיונות שעשיתי (בeclipse אם זה משנה), הצלחתי ללא בעיה.מישהו יודע אולי למה הם התכוונו?
פורסם 2008 ביוני 817 שנים כשאתה משנה string ב-java (וב-c#) אתה בעצם יותר אובייקט חדש שמכיל את התווים החדשים.אין אפשרות לשנות תוים ב-string קיים.אם תעשה משהו כזהstring s1 = "abc";string s2 = s1;s1="qwer";בסיום הריצה s1 שווה ל-qwer אבל s2 עדיין שווה ל-abcאם אתה רוצה לשנות אובייקט string קיים בלי ליצור Instance חדש אתה צריך להשתמש ב-StringBuilder
פורסם 2008 ביוני 817 שנים מחבר אני קצת מבולבל,אתה אומר string s1 = "abc"ואז s1 = "qwer"וS1 מקבל את הסטרינג החדש "qwer", זה לא נקרא לשנות תווים בstring הקיים?
פורסם 2008 ביוני 817 שנים לא.זה יוצר סטרינג חדש שמכיל "qwer", והופך את s1 למצביע אליו.יש שפות שבהן אפשר לעשות משהו כזה:string s = "qwer";s[0] = 'x';ואז s יכיל "xwer". זה מה שנקרא לשנות את המחרוזת.
פורסם 2008 ביוני 817 שנים נו סתם לא היה לי כוח לפרט בדוגמא יותר מידיאם תעשהstring s1="qwer";string s2=s1;s1[0]="a";בסוף s1 יהיה "awer" ו-s2 יהיה qwer
פורסם 2008 ביוני 817 שנים מחבר now i got it בספר פשוט רשמו שאי אפשר, לו מה קורה אם מנסים בכל זאת שאלה נוספת: (עפ"י הדוגמא של שניצל). המידע הקודם (הסטרינג המקורי) הופך לgarbage וימחק מתי שהוא או שהוא נשאר בזיכרון כרגיל?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.