java的对象传递(传递的是对象地址)
2014-07-24 10:19
211 查看
文章地址:http://3331191abc.blog.163.com/blog/static/3351315620101234420929/
Java语言中对象传递的是地址,而不是引用,这两个概念是有非常大的差别的
例如下面:假设对象Test有name的属性
public void call(Test t) {
Test t2 = new Test();
t2.setName("cba');
t.setName("abc");
t = t2 ;
}
public static void main(String[] arg) {
Test obj = new Test();
call (obj) ;
System.out.println("obj"+obj.getName());
}
这 个时候,你们可以发现,打印出来的是"abc" ,而不是"cba",原因是这样的,在这次调用中,等于声明了两个变量obj , t,它们指向的是同一个地址,调用call方法,只是将obj指向的地址传递给了t,而obj本身并没有传递过去(也就是没有传递引用),当你重新赋值的
时候(也就是将对象引用指向其他存储空间),等于只影响了t,而没有影响obj。
这样的传递方式只能称之为址传递,或者是引用对象传递,而不嫩说是传递引用或者引用传递。
Java语言中对象传递的是地址,而不是引用,这两个概念是有非常大的差别的
例如下面:假设对象Test有name的属性
public void call(Test t) {
Test t2 = new Test();
t2.setName("cba');
t.setName("abc");
t = t2 ;
}
public static void main(String[] arg) {
Test obj = new Test();
call (obj) ;
System.out.println("obj"+obj.getName());
}
这 个时候,你们可以发现,打印出来的是"abc" ,而不是"cba",原因是这样的,在这次调用中,等于声明了两个变量obj , t,它们指向的是同一个地址,调用call方法,只是将obj指向的地址传递给了t,而obj本身并没有传递过去(也就是没有传递引用),当你重新赋值的
时候(也就是将对象引用指向其他存储空间),等于只影响了t,而没有影响obj。
这样的传递方式只能称之为址传递,或者是引用对象传递,而不嫩说是传递引用或者引用传递。
相关文章推荐
- java 值传递 引用传递(又叫地址传递,对象传递)
- java传值(简单类传递的是值拷贝,类对象传递的是地址拷贝)
- java引用传递和对象传递的区别(对象在方法中传递时,仅仅传的是地址的副本)
- Java与Flex间复杂对象(本例中的QueryCriteria类)的传递
- java传递是引用的拷贝,既不是引用本身,更不是对象
- 【JSF心得】JAVA的对象传递是引用传递
- 【JSF心得】JAVA的对象传递是引用传递
- Java 学习笔记 (2) -Java 对象 间的 传递 赋值
- Java中的值传递和地址传递
- 通过socket传递java对象(对象序列化)
- flex传递对象给java
- 个人对Java中String对象的传递的理解(错误之处,请给与纠正,
- 通过socket连接传递java对象(对象序列化)
- 传递和返回对象---java编程思想
- 通过SOCKET传递序列化的Java对象的方法 序列化 Socket
- Web Service中Axis与DotNet互操作最佳实践:传递java.util.Map对象给C#(译)
- java基础教程-对象的传递与返回
- 通过socket传递java对象(对象序列化)
- 【JSF心得】JAVA的对象传递是引用传递
- java对象的传递