什么是引用?什么事赋值?
直接上栗子,代码:Temp类
class Temp{
int i; //基本数据类型
public void show(){
System.out.println(i);
}
}
main:
public static void main(String[] args) {
//new了一个t,这个可以说是一个引用类型的数据,让t指向一块内存
Temp t = new Temp();
t.i = 10;
Temp t2 = t;//这句话就是t2也指向t,new出来的那块内存
t2.i = 99;
t.show(); //t输出:99
t2.show(); //t2输出:99
}
输出的都是99,为什么呢哩?
看内存模型:
解析:
1,数据类型有两种,一种是基本数据类型,一中是引用类型(看第一张图)
2,当 new 了一个类,就会分配一块内存, t 就会指向那块内存,当执行赋值i=3语句后,内存中i =3;
3,Temp t2 = t,就意思是 t2 的引用也指向 t 的内存块,它们就会共用这块内块(红箭头所示)这就是引用。因为t2没用 new ,所以就不会分配内存
4,当执行 t2.i=99是,就改变了原来i的值,现在内存中的 i 就变成了 i=99。
赋值是基本类型数据中用=号来赋值
i 的值就是99
例:
//基本类型用=号就是赋值
int i = 99;