JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:當String為參數的時候 為何不會影響原先的值呢? [Re:dupre]
bigu





發文: 12
積分: 0
於 2005-08-04 13:17 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
這是一個變數傳遞的問題,很多JAVA的書都有提到...

一般程式語言(如vb)傳遞參數時有by address 跟 by value兩種,
但在java裡面只有By value一種,
所以第一個程式的s1傳進去時,並不是將s1的address傳入,
而是直接將"slip"的位置放了進去,當fix()中的s1改變時,
原來的s1仍然是指到"slip",故未改變。

當參數型態變成Object時,
也因為值是存放student在記憶體裡面的address,
所以當fix()裡面改變了記憶體裡面student的值,
原先的john所指向的student就是改變後的student,
所以當參數型態是Object時,當初傳入的Object的值也會改變。
(因為指向的是同一個物件...)

其實只要畫個圖看一下記憶體運用的狀況,你就可以很清楚的了解了...
(用文字說明可能還是太難想像...^^")

你可以參考「JAVA2全方位學習」這本書的參數那一章,
裡面有很詳細的解說...
(不是打廣告,而是我手邊只找到這本...)


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
1560 當String為參數的時候 為何不會影響原先的值呢? dupre 1565 2005-08-04 10:08
1378 Re:當String為參數的時候 為何不會影響原先的值呢? pilijerry 91 2005-08-04 11:50
2409 Re:當String為參數的時候 為何不會影響原先的值呢? bigu 484 2005-08-04 13:17
1170 Re:當String為參數的時候 為何不會影響原先的值呢? dupre 114 2005-08-04 21:14
1139 Re:當String為參數的時候 為何不會影響原先的值呢? alien 534 2005-08-04 22:34
1124 Re:當String為參數的時候 為何不會影響原先的值呢? lkkll 171 2005-08-04 22:40
1161 Re:當String為參數的時候 為何不會影響原先的值呢? alien 230 2005-08-05 09:36
1123 Re:當String為參數的時候 為何不會影響原先的值呢? dupre 67 2005-08-05 01:22
» JWorld@TW »  Java 新手區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8