Java 传值和传引用小结


参数传值

方法中所有参数都是“传值” (方法中参数变量的值是调用者指定然的值副本)

对于基本数据类型的参数,向该参数传递的值的不可以高于该参数的级别(不能向int型参数传递一个float值) 如果 出现会有什么情况发生??

引用类型参数的传值

如果改变参数变量所引用的实体, 就是导致得变量的实体发生同样的变化。因此,两个同类型的引用型变量如果具有同样的有引用,就会用同样的实体,但是改变参数的引用不会影响向其传值 的变量的引用。

(这一个什么话 我看了N遍 怎么就是不懂呢???)

Java程序的函数调用到底是传值呢还是传参呢?这可是个难缠的问题,

最经典的解释莫过于“Java函数是传值的,Java函数传递的参数是对象的引用”

传递参数的时候传递的就是相应内存地址中的数,所以说“Java函数是传值的”。

对于基本类型这个数就是其值本身,传递值的结果就是,改变新的变量的值不影响旧的变量的值;而对于对象来说这个数是它的地址,传递这个值就相当于传递了真实对象的引用,传递了引用或者说是地址的结果就是变化会全局可见,所以又可以说“Java函数传递的参数是对象的引用”。

对象是传引用的   参数是传值的

在Java中,你从来没有传递对象,你传递的仅仅是对象的引用!

传值意味着当参数被传递给一个方法或者函数时,方法或者函数接收到的是原始值的副本。因此,如果方法或者函数修改了参数,受影响的只是副本,原始值保持不变。

在Java中,传递一个引用类型的参数的结果只是传递引用的副本(传值)而非引用自身。

相关内容