标签:
这个问题,网上一查越看越迷糊,纠结完了先总结下
先看个栗子:
16 }
输出结果: View Code
基本数据类型参数传递时按值这是没问题的,主要是对于引用数据类型传递的纠结
java参数传递不存在引用传递
//参考Horstmann在java核心技术卷一 p123的栗子
public static void swap(Employee x,Employee y){
这个例子看来,java肯定不是传引用了
来看下概念:
按值传递:方法接收的是原始值得副本
按引用传递:方法接收的是原始值的内存地址
java引用:java里面对于引用数据类型,stack里面会把一个可以指向heap里面目标对象的内存地址赋给一个变量,这个变量也叫引用
基本数据类型是传值这是肯定的,那么这个问题考虑完后就是这样的,对于引用数据类型
copy一个刚好叫做“引用”的东西传过去是叫他传引用还是传值呢 ? (传的方式、传的东西)
不要纠结了,能理解就好了 【当然形式上看还是传值,传了个引用的副本】
可以这样想,java参数传递相当于一个"="过程,它有3个特点
1."="对于基本数据类型是直接复制值,对于引用数据类型是复制的引用
2."="放弃原来的值、引用,重新获得左边的值、引用
3.复制完成左边右边就没关系了
总结:java参数传递等价于java里面的"="
标签:
原文地址:http://www.cnblogs.com/laseine/p/5327687.html