初学JAVA——栈空间堆空间的理解

1.Person pangzi;    //这是在“开拓空间”于栈空间

   pangzi=new Person();    //这是赋值于堆空间

  上两步就是在做与空间对应的事。

2.值类型直接存入栈空间,如AF,引用类型存入堆空间,在栈空间存有“索引地址”,如当需要B时,在栈空间寻找“索引地址”后对应寻找堆空间的“详细内容”。

故,值类型“快”,引用类型“灵活”。

例String S = “ABCDEFG........Z",则S对应栈空间,“ABCDEFG........Z"对应堆空间。

例int A = 10;int F = A;int A =11;此时F仍为10。因为值类型的赋值是COPY,副本之后存入,再去重新赋值A不会影响已生成的副本,则F不变,为10。

另:int A = 1234L;//此处错误,不能将“大箱子里的东西(long)”准备“用小箱子装(int)”,因为有“装不下”的可能。

在“可容纳”情况下有 int A = (int)1234L;是可行的,强制转换。

例引用类型BC指向堆空间SOS,D指向堆空间SBS,若D取消或变更指向,则SBS没有对应,即成为垃圾,被检测后删除。

原文地址:https://www.cnblogs.com/zhaoxifei/p/5008646.html