1.基本数据类型
public class test {
public static void main(String
[] args
) {
int n
=1;
int m
=n
;
System
.out
.println(m
);
n
=2;
System
.out
.println(m
);
}
}
输出:
1
1
2.引用数据类型
public class test {
public static void main(String
[] args
) {
Tmp x
= new Tmp();
Tmp y
= x
;
x
.a
= 1;
System
.out
.println(y
.a
);
x
.a
= 2;
System
.out
.println(y
.a
);
}
}
class Tmp {
int a
;
}
输出:
1
2
由此可见,基本数据类型的变量,修改其中一个变量的值,另一个变量不变;而引用数据类型可以做到这一点。
下面来分析两种变量赋值时的内存机制
基本数据类型: 声明局部变量后,存入内存的栈中,两变量的值互不影响
引用数据类型: 首先我们要明白局部变量分配在栈中,而对象分配在堆中,当两个引用数据类型赋值时,是按地址值传递的,栈中的局部变量存储同一个地址,指向堆中的对象,其中一者修改值,另外一个随之修改