值传递与引用传递
几个误区
Java是引用传递.
值类型是值传递, 引用类型是引用传递.
所有的都是值传递, 因为引用本质上只有个值, 本质上是指针....求值策略关注的点在于, 表达式在调用函数的过程中, 求值的实际, 值的形式的选取等问题. 求值的时机, 可以在函数调用之前, 也可以在函数调用之后, 由被调用者自己求值....) 调用前 原值(原始对象, 不生成副本)
名传递(pass by name) 调用后(用到后求值) 与值无关的一个名
值传递与引用传递的区别
我们重点看一下值传递和引用传递的区别, 首先是二者在行为表象上的区别...:
- 值传递 引用传递
根本区别 会创建副本 不创建副本
所以 函数中无法改变原始对象 函数中可以改变原始对象
这里所说的改变, 是指把一个变量指向另一个对象, 而不是仅仅改变属性或者成员....综上所述, 我们对Java的函数调用方式可以描述为: 参数是通过值传递的方式, 传递的值是一个引用的拷贝.