Java的值传递

概要

Java的值传递。

博客

原帖收藏于IT老兵博客

正文

复习《C++ Primer》第三版第89页,复习了一遍C++的引用。

找到了以前总结的笔记:

C++的引用是怎么样的?
“引用是C++的一个特征,它就像能自动被编译器逆向引用的常量型指针一样。 ”

“使用引用时有一定的规则:
1) 当引用被创建时,它必须被初始化。(指针则可以在任何时候被初始化。)
2) 一旦一个引用被初始化为指向一个对象,它就不能被改变为对另一个对象的引用。(指
针则可以在任何时候指向另一个对象。)
3) 不可能有NULL引用。必须确保引用是和一块合法的存储单元关连。”

--《C++编程思想》

再来理解Java的引用,在《Java编程思想》的第二章,有涉及到这个地方的知识,这里说Java对于对象的传递是通过引用。

https://stackoverflow.com/questions/4712798/how-to-use-references-in-java, 这里讲了原始类型和对象的传递方式。

总结

其实Java都是通过值传递,对于原始的类型,是值传递;对于对象,是把引用的值通过值传递传给新的变量,这个变量里面保存的是原来引用所指向的对象的地址,这个时候修改了这个值,对原本的引用不会产生影响。