【先把概念copy过来】
在Java方法中参数列表有两种类型的参数,基本类型和引用类型。
基本类型:值存放在局部变量表中,无论如何修改只会修改当前栈帧的值,方法执行结束对方法外不会做任何改变;此时需要改变外层的变量,必须返回主动赋值。(包括封装类型) 引用数据类型:指针存放在局部变量表中,调用方法的时候,副本引用压栈,赋值仅改变副本的引用。但是如果通过操作副本引用的值,修改了引用地址的对象,此时方法以外的引用此地址对象会被修改。(两个引用,同一个地址,任何修改行为2个引用同时生效)。
这两种类型都是将外面的参数变量拷贝一份到局部变量中,基本类型为值拷贝,引用类型就是将引用地址拷贝一份。 像引用数据类型的我们可以直接传递他的实例对象到方法中改变他的值 不用返回,这个实例对象的值也会变,包装类型和基本数据类型不行。 www.runoob.com/java/java-b…
【个人理解】
针对基本类型,每次初始化都是定义了一个新篮子,每个篮子里互相独立,互不影响。每次赋值,就是在清空篮子再放入新的数据。 针对引用数据类型,每次初始化都是给了一个保险柜的地址(保险柜无锁,任何获得保险柜地址的人都有权操作保险柜)。