总结:
基本类型的变量值小,可直接拷贝;
对象包含多个值,不容易复制,赋值采用共享同一块内存区域。
基本类型示例:
public class Test{
public static void main(String[] args){
int a = 5;//基本数据类型的赋值过程就是值拷贝的过程,将5这个值拷贝给a
int b = 0;//同理,将0这个值拷贝给a
b = a;//执行这一步时,将a的值拷贝给了b,b此时的值就是5
b = 6;//将6这个值拷贝给了b
System.out.println("a:" + a);//输出 a:5
System.out.println("b:" + b);//输出 b:6
}
}
从上面可以看出,修改 a或者b的值时,另一个变量的值不会受到任何影响
引用类型示例:
/**
* 实体类(引用类型)
*/
public class User{
public int age;//int默认值为0
}
public class Test{
public static void main(String[] args){
User u1 = new User();//u1的引用指向u1的引用
User u2 = new User();//u2的引用指向u2的引用
u1.age = 20;
u2 = u1;//将u2的引用指向u1的引用,即 u2和u1共享同一个内存区域中的数据
System.out.println("u1的age:" + u1.age);//输出 u1的age:20
System.out.println("u2的age:" + u2.age);//输出 u2的age:20
u2.age = 30;
System.out.println("u1的age:" + u1.age);//输出 u1的age:30
System.out.println("u2的age:" + u2.age);//输出 u2的age:30
}
}
从上面可以看出,修改 u1.age或者u2.age的值时,另一个变量的值也会一起变化,因为它们所指向的数据是同一份数据