作者adrianshum (Alien)
看板java
标题Re: [问题] 请教一个基本的问题
时间Mon Mar 1 18:34:46 2010
※ 引述《Lordaeron (Terry)》之铭言:
: ※ 引述《adrianshum (Alien)》之铭言:
: : [43]
: : 推文等太久,乾脆回文。
: : 把它理解为 "obj 就是 call by ref" ,包准你会
: : 在另一种情况下搞混。
: : 例如:
: : void foo(String a) {
: : a += "foo";
: : }
: : String x = "xxx";
: : foo(x);
: : // x 的结果是什麽?
: : 很不幸,把东西说成 "物件就是 call by ref"
: : 对这种情况十居其九都会搞错
: : 何不好好理解一下 Java 自己的说法: Java 只有 pass-by-value.
: : object 传的是 reference (或者理解为 handle, pointer etc) 的
: : copy. 只为这个 copy 和原本的 reference 都是指向同一 object,
: : 所以修改 obj 的内容,caller 也会看得到.
: 都没有定义以下的东西, 就在讨论了? 这麽神奇?
: 给个定义吧:
: 什麽是reference?
: 什麽是value?
: 什麽是call by value?
: 什麽是call by reference?
http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_value
http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_reference
而 value 及 reference 两个单字在 java 里的意思, 和
pass-by-value & pass-by-reference 并无直接关系, 请
不要混淆视听
btw, 这些定义, google 一下就找得到了, 你不
要每次都伸手牌要人找给你好吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.238.156.189
※ 编辑: adrianshum 来自: 61.238.156.189 (03/01 18:36)
※ 编辑: adrianshum 来自: 61.238.156.189 (03/01 19:22)
1F:推 ogamenewbie:请冷静, 减少情绪化用词, 感谢您. 03/01 21:00
2F:→ adrianshum:其实我蛮冷静耶, 只是l君经常叫人给def 03/02 10:29