Java中究竟是传值还是传引用
作者: wwty, 出处:IT专家网论坛, 责任编辑: 包春林,
2008-05-16 04:00
在Java中,事实上底层工作原理不存在传引用的概念,这也象《Practical Java》中所说的那样,Java中只有传值。这句话理解起来需要费一定的周折。
还有一个例子:
//例4
| StringBuffer a=new StringBuffer("I am a ");
StringBuffer b=a; a.append("after append"); a=b; System.out.println("a="+a); |
以上是两个最简单的例子,真正的程序开发过程中,比这要复杂的情况每天都会遇到。
3类型和类
Java 提出的思想,在Java里面任何东西都是类。但是Java里面同时还有简单数据类型:int,byte,char,boolean,与这些数据类型相对应的类是Integer,Byte,Character,Boolean,这样做依然不会破坏Java关于任何东西都是类的提法。
这里提到数据类型和类似乎和我们要说的传值和传引用的问题无关,但这是我们分辨传值和传引用的基础。
4试图分辨传值还是传引用
为什么是"试图分辨"呢?很简单,传值和传引用的问题无处不在,但是似乎还没有人能正统的给出标准,怎样的就是值拷贝调用,怎样的就是引用调用。面对这个问题,我们更多的应该是来自平时积累对Java的理解。
回过头来,我们分析一下上面的几个例子:
先看例1,即使你不明白为什么,但是你应该知道这样做肯定不会改变x的值。为了方便说明,我们给例子都加上行号。
//例1
| 1 void method1(){
2 int x=0; 3 this.change(x); 4 } 5 6 void int change(int i){ 7 i=7; 8} |
- 本文关键词:

