论坛首页 Java企业应用论坛

一个绝对害了不少人的Java技术问题!

浏览 92916 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-04-12  
我绝对的希望大家注意http://www.parrotcode.org/的parrot,这个vm我认为是值得期待的。我认为在这个VM上perl和python将和多数的脚本语言走到一起,而java会被影响无疑是肯定的,但是具体会发生什么我还不知道。相信在3年后这个问题就会有答案,不过我想暂时的对于robbin和dlee来说他们是肯定会从这个项目中得到好处的。
0 请登录后投票
   发表时间:2004-04-12  
ozzzzzz 写道
我绝对的希望大家注意http://www.parrotcode.org/的parrot,这个vm我认为是值得期待的。我认为在这个VM上perl和python将和多数的脚本语言走到一起,而java会被影响无疑是肯定的,但是具体会发生什么我还不知道。相信在3年后这个问题就会有答案,不过我想暂时的对于robbin和dlee来说他们是肯定会从这个项目中得到好处的。

对于动态语言来说用什么VM并不重要,重要的是Libary,Libary never changes.
0 请登录后投票
   发表时间:2004-04-15  
wuweixian 写道
Java只有一种参数传递方式,那就是传值。

以上是个人的一点理解,有不同意见欢迎探讨!


赞同这个观点,楼主说的跟这个也相容的吧。
0 请登录后投票
   发表时间:2004-04-15  
^_^,没有想到还有人在回复这个帖子~~~~~~~~~~~~~
   我懂楼上的意思,但是为了避免误会,应该是这样说,基本数据类型传递的是值,而对象传递的是指向的值(因为基本数据类型没有指向这一概念可说,所以两者也不好比较)
0 请登录后投票
   发表时间:2004-04-16  
传值还是传引用(或指针),我想这需要看系统实现和硬件的寻址能力。对32位系统来说,32位长度以下的数据可以传值也可以传引用,对32位长度以上的数据,除了传引用,没有办法可以把完整的数据以传值的方式进行传递。个人意见,仅供参考。
0 请登录后投票
   发表时间:2004-04-19  
你好凤舞凰扬,很高兴能有机会参与你的问题讨论!

我就对“凤舞凰扬”里的代码讨论。
   论点:句柄“t”并不就是代表对象“obj”.句柄“t”只是指向对象“obj”的指针而已。
   论据:在方法call里---“t=t2”即现在句柄“t”所指向的是“t2”,也就是说句柄“t”现在是对象“t2”的句柄。
     public void call(Test t)
       {
                  Test t2 = new Test();
                  t2.setName("cba');
                  t.setName("abc");
                  t = t2 ;
                  ///下面的代码可以说明“t”指向的是对象“t2”
            t.setName("ttttttttttt");
                   System.out.println("t2被改变了"+t2.getName());
       }
即"t2"是在main里定义的,传进call里的是两个句,结果也是一样的.
0 请登录后投票
   发表时间:2004-04-19  
t == t2
0 请登录后投票
   发表时间:2004-05-08  
我也觉得问题出在t = t2 ;
对于对象,先开始通过函数调用,t是obj 的引用,但t=t2这句使t变为t2的引用了,当然obj根本没发生变化,还是开始t得到的值。

俺是初学者,这是俺的一点理解。
0 请登录后投票
   发表时间:2004-05-12  
确实是这样的,我曾怀疑过,问了一个网友,他说JAVA中没有传址这一说,所以我也就没有细追究,经你这么这提,我调了一下确实是的,对象作为参数时是其实也就是C++里的传址操作,但对象赋给对象是传值操作,把右边对象的相应的数据成员值拷贝给左边对象的相应的数据成员。
0 请登录后投票
   发表时间:2004-05-12  
别把概念弄错了,人家可说的是对象作为方法的实参时,可不是在方法里面的赋值操作,赋值确实是传值。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics