今天给大家分析一下变量在内存中的分配情况,这也是变量的基本工作原理,我们求职时面试官就喜欢考察这一块的内容哦。
回想一下,我们之前定义变量的基本过程,比如int x=100;:
1. 首先需要指明该变量的数据类型,比如本文中说到的int整型;
2. 然后要给该变量设置一个变量名,比如变量名称x;
3. 接着我们还要给变量赋值,比如 x=100。
在以上定义变量并赋值的过程中,x是变量名。JVM虚拟机会给该变量在内存中分配一个位置0x002(这个地址值是我随便写的,计算机底层会按自己的规律生成),然后计算机底层就会根据该位置来找到x变量的真实存储位置。这个内存中的地址值,相当于是x变量的”门牌号“,别人可以根据这个地址值找到x变量。对于基本类型的x变量来说,它的整型值100会存储在一个叫做”栈“的结构里,关于”栈“的详细内容,壹哥会在后面的文章中再单独说明。一句话,创建变量时,需要在内存中申请一块空间。内存管理系统会根据变量的类型来为变量分配存储空间,分配的空间只能用来储存该类型数据。大家可以参考壹哥绘制的示意图来理解整型变量x的内存结构: