Java函数传递对象与C++传递引用
来源:互联网 发布:java身份证格式校验 编辑:程序博客网 时间:2024/06/06 18:24
我听说过这么一句话,“Java函数传参都是传递引用。”,貌似还很流行。不知道是不是Java没有指针概念的缘故,总之如果你学过C++,那就要记住,Java对象在函数间的传递不同于C++概念中的传递引用,如果不懂C++,无视这篇blog。不想纠结于概念,看例子。
Java代码:
运行输出为:
100
100
可见虽然在test里为passA赋值了一个新的对象,但是函数运行完后,显然对象并没有发生变化。
第二段Java例子:
这次在test里没有改变对象,而是调用对象方法,为成员变量赋值,输出结果为:
100
99
下面看一段C++的传引用例子:
在test函数中传递引用,同样是赋予一个新的对象,但是结果不同于Java的结果:
100
99
用C++的思维来理解Java,java中的每一个类Object的实例obj相当于对一个Object类的指针,在函数中直接传递这个指针,可以改变指针指向地址的值,但直接修改指针本身是没有用的,因为指针是传值传递过去的,在函数内保存了这个这个指针的副本。
C++的传引用不同,比如:
void func(T & t)
{
//some code
t = x;
}
实现相当于
void func(T * pt)
{
//some code;
*pt = x;
}
- Java函数传递对象与C++传递引用
- C 与 引用传递
- <Java>函数参数值传递与引用传递
- 图解C/C++中函数参数的值传递、指针传递与引用传递
- 图解C/C++中函数参数的值传递、指针传递与引用传递
- java引用传递和c地址传递
- java函数传递对象
- 【JAVA】34、对象引用传递
- java面向对象:引用传递
- java值传递与引用传递
- java值传递与引用传递
- Java值传递与引用传递
- java 引用传递与值传递
- Java中的值传递与引用传递
- java中的值传递与引用传递
- java值传递与引用传递
- JAVA 值传递与引用传递详解
- Java中值传递与引用传递
- FYI 的百科
- 什么是 WPS(Wi-Fi Protected Setup)
- 第一篇帖子,写给团队,写给peray(HW)
- document.ready和window.onload的区别
- PermGen space的全称是Permanent Generation space
- Java函数传递对象与C++传递引用
- Linux ubuntu lamp安装配置环境phpmyadmin
- 转载【去跨国公司好还是去创业公司好?】(HW)
- Sokoban(仓库番,推箱子)自动求解与辅助求解工具
- 网页关闭时弹出确认取消对话框
- juicy-couture-handbags-1291689169078
- PHP MYSQL精确测试SQL语句执行时间
- 手机页面的转换----setContentView的应用
- 转贴:生活在Emacs中!