##人之所以痛苦,那是因为你在成长。--------magic_guo
java关于赋值的理解:
1.基本数据类型的赋值
public static void main(String[] args) {
System.out.println("*******************基本数据类型*****************************************");
int m = 10;
int n = m;
System.out.println("m = " + m + ", n = " + n);
n = 20;
System.out.println("m = " + m + ", n = " + n);
}
}
结果:
*******************基本数据类型*****************************************
m = 10, n = 10
m = 10, n = 20
分析:
* 变量的赋值:
* 1.基本数据类型:
* 1.1 赋值的是变量所保存的数据值
* 个人理解:基本数据类型变量,声明在栈里,值直接存在栈中,赋值时,直接将值赋过去;两个变量的值是不同的两份,因此修改其中一个,
* 另一个互不干扰。
2.引用数据类型的赋值
public static void main(String[] args) {
System.out.println("*******************引用数据类型*****************************************");
Order o1 = new Order();
o1.id = 1001;
Order o2 = o1;
System.out.println("o1.id = " + o1.id + ", o2.id = " + o2.id);
o2.id = 1002;
System.out.println("o1.id = " + o1.id + ", o2.id = " + o2.id);
}
}
class Order{
int id;
}
结果:
*******************引用数据类型*****************************************
o1.id = 1001, o2.id = 1001
o1.id = 1002, o2.id = 1002
分析:
* 2.引用数据类型:
* 2.1 赋值的是变量所保存的数据的地址值
* 个人理解:引用数据类型变量,声明的对象在栈里,而值存在于堆中,栈里变量保存的是堆中值的地址值,赋值时,
* 是将地址赋(即指针或者称为指向)给另一个变量;即两个变量同时指向一个值、如果做修改,则都会改变。