Java中关于堆栈和堆的描述

Java中关于堆和栈的描述:
描述的不一定正确,欢迎指正!!
Java基本数据类型都是以值的形式储存在栈中,而引用数据类型则是以引用的形式存在栈中,在栈中在指向堆中引用对象。
关于栈和堆的实例一(基本数据类型):
int a =1;
int b = a;
int b = b+1;
Java 在栈中的储存的关系顺序:
第一步:在栈中开辟一个空间,是int 类型的,取名为a,并且赋值给1;
第二步:在栈中开辟一个空间,是int 类型的,取名为b,并且把 a 的值赋值给 b ;【也就是说 a 的值赋值给了 b ,此时 b 的值也是 a ,a = 1】
第三步:在栈中进行运算,b+1 的值赋值给 b ,根据上一步 b 的值为 1 ;第一步 得到 a 的值为 1 ;所以 b+1 的的值就是 2 ,重新赋值给 b 就是 b改变了原来(由 1 → 2 )。
关于栈和堆的实例二(引用类型):
Student student = new Student();
student.name = "刘广法";
Student studentTwo =student;
Java 在栈中的储存的关系顺序:
第一步:在栈中开辟一个空间,命名为student ,并且 student 指向堆中的对象 new Student();
第二步:给student 中的变量 命名为:“刘广法”;
第三步:在栈中开辟一个空间,命名为studentTwo ,并且把 student 对象赋值给 studentTwo 。
也就是说此时的 studentTwo 中变量的名字也是“刘广法”。
如果此时,进行变量修改,
studentTwo.name = "刘广法博客";
那么结果就是student 的名字也是修改成了“刘广法博客”
文章作者:刘广法,转载请注明出处。