背景
最近在学习Java的设计模式时候,总是经常遇到值类型和引用类型的传递问题。跟着视频和教程去听的时候总是感觉一知半解,所以总结下来。
定义
值类型:又称基本数据类型。值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变。 值类型就是我们经常所说的4类8种:
- 整型:byte,short,int,long
- 浮点型:float,double
- 字符型:char
- 逻辑型:boolean
引用类型:引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变。 除了值类型外就是引用值类型了,引用值类型主要有:
- 类(class)
- 数组
- 接口类型(interface)
- 字符串(String)
- …
区别
1.值传递与引用传递的区别
基本数据类型的赋值是值传递,当值类型变量a赋值给值类型变量b之后,再去改变b的值那么a不会随着b的改变而改变。即值传递传递的是实实在在的变量值,是传递原参数的拷贝,值传递后,实参传递给形参的值,形参发生改变而不影响实参。
int a=1;
int b=a;
b=2;
结果:a=1;b=