该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-04
引用,值.
A a //a 是一个引用(会在栈上分得空间). = new A(); //new A()这是一个值(一个对象会在内存堆上分得空间). test(A arg){ } 就算你调用test(new A()),它在执行过程也是有名的:arg. 只是你传入了一个匿名的值. |
|
返回顶楼 | |
发表时间:2008-08-05
其实关键看你对引用怎么理解了
|
|
返回顶楼 | |
发表时间:2008-08-06
java程序语言设计总是使用传值调用。
但当方法的参数类型是对象或数组等引用类型时,在方法调用中传递给该参数的仍然是调用程序中对应的变量的值,即对某个对象或数组的引用
|
|
返回顶楼 | |
发表时间:2008-08-08
1.基本数据类型按值传递
2.对象类型按引用传递,只不过不是直接把指向对象的引用传递过去,而是再复制一个引用,将复制的引用作为参数传递 |
|
返回顶楼 | |
发表时间:2008-08-10
什么值传递,什么值传递的,如果在面试的时候出这种题就有点弱智了。还不如干脆写出来一段程序让面试者写出输出结果呢。这样可以避免大家对概念的理解不一致的问题。
|
|
返回顶楼 | |
发表时间:2008-08-12
这应该是新手帖吧,可惜我评不了啊.
对于概念性的问题讨论太多没意义. |
|
返回顶楼 | |
发表时间:2008-08-12
java感觉应该还算是引用传递啊
A a=new A(); 其实a只是一个8字节指向堆地址的引用,而对另外一个B b=a;也只是将这个堆地址扔给了b. 而基础类型的值传递,也只是这个引用指向了栈区的常量池(不是很确定在栈)。 所以感觉这问题是怎么理解引用传递的吧?如果把堆地址就看做值的话,那就可以说是值传递了.不过就算说是值传递,其实跟引用传递本质有区别么? |
|
返回顶楼 | |
发表时间:2008-08-12
norwolfli 写道 这应该是新手帖吧,可惜我评不了啊.
对于概念性的问题讨论太多没意义. 概念问题没太多讨论意义?你能保证java能写一辈子,以后有需求需要你写点c,那不是... |
|
返回顶楼 | |
发表时间:2008-08-12
为什么现在都喜欢把简单问题复杂化,不理解
|
|
返回顶楼 | |
发表时间:2008-08-13
同意lz的意见,值传递和引用传递本来都有明确的含义,java程序员不应该轻易破坏这些约定。
|
|
返回顶楼 | |