j​a​v​a​中​引​用​和​c​+​+​中​引​用​的​区​别

来源:互联网 发布:java编程思想电子版 编辑:程序博客网 时间:2024/05/24 02:06

http://wenku.baidu.com/link?url=hGrVbvwiE5Ayck8tVE_-ayZT90WS_v8DSrRpG_79kMRGWqT8CGxRJwyqDZmOPc9wLdBku93v4vGT-soXpiI-E0nBHrY5ESRi8AfURglLt2q

Java中的引用在使用上非常类似于c++的指针,相当于通过一个变量存储实际对象的地址。


另:http://blog.csdn.net/terryhuang/article/details/1656783

Java中的引用和C++中的指针比较类似,实际上Java中的引用就实现了C++中的指针功能,不过Java中的引用是安全的,不能对引用实施如++或者--等操作,这些操作可以指向内存中其他的数据,这些数据可能不属于该进程,对这些数据的操作会带来安全隐患.

而C++中的引用和Java中的引用虽然名称类似,但差别比较的大,Java中的引用实际上是用来操纵对象的工具,而C++中的引用则是用来把函数内对改数据的操作返回给调用者,函数内外会产生不同的两个对象,对函数内的对象操作完之后,把该对象的数据复制给函数外的对象


另:http://blog.csdn.net/terryhuang/article/details/1656783

在c++中,引用只是对于一个变量起的别名,一旦定义就无法修改,即无法再指向其他变量,如程序中,对于aint的任何操作都等同于对于a的操作。

java定义的引用并不是这样。在java中,引用相当与指针,它与c中的指针主要有两个区别:一是引用不能进行地址操作,如数组的加一 操作,相当于引用只是只是指向数据的一个副本,而不是数据本身,这样就避免了由于对于地址的误操作而改变其他变量的值,甚至危害到系统的安全。二是 java中的引用只能指向对象,他的引用是在实例化对象时系统直接生成的,因此对于普通数据类型是不能进行引用定义的,如果要对普通数据类型进行函数调用 时的地址传递(即java中的引用传递),必须把数据封装到类中。
java的这种特性使得在java的函数或类的参数传递时可以实现与c中指针相同的功能。 

0 0
原创粉丝点击