值传递与引用传递
几个误区
Java是引用传递.
值类型是值传递, 引用类型是引用传递.
所有的都是值传递, 因为引用本质上只有个值, 本质上是指针....对于值传递, 无论是值类型还是引用类型, 都会在调用栈上创建一个副本, 不同的是, 对于值类型而言, 这个副本本身就是原始值的全部复制, 而对于引用类型而言, 由于引用类型的实例在堆上, 所以栈上只有他的一个引用...综上所述, 我们对Java的函数调用方式可以描述为: 参数是通过值传递的方式, 传递的值是一个引用的拷贝....在C#中, 可以通过来ref/out来实现引用传递, 没有ref/out就是值传递....几个解释
针对于上文的几个误区, 我们来一一进行解释:
引用传递是指的求值方式, 而不是说Java的参数类型是对对象的引用. 并且Java在函数调用时, 是通过值传递的方式, 传递引用的副本.