码迷,mamicode.com
首页 > 其他好文 > 详细

JVM学习--局部变量表

时间:2020-03-16 09:56:52      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:this   har   初始   局部变量   存储   ble   OLE   通过   不可   

 

变量分类:

1)基本数据类型  、 引用数据类型

2)成员变量(在使用前,都经历过默认初始化值) :类变量(liking的prepare阶段给类变量默认赋值,在initial阶段,给类变量显示赋值及静态代码块赋值)、实例变量(随着对象的创建,会在堆空间中分配实例变量空间,并进行默认赋值)

     局部变量:在使用前,必须进行显示赋值,否则编译不通过

 

 

 

局部变量表,定义为一个数组,主要用于存储方法参数(形参)和定义在方法体内的局部变量,最基本的存储单位是Slot(槽)

局部变量表中存放编译期可知的各种基本数据类型,8种数据类型,引用类型(reference),returnAddress类型的变量

32位以内的类型占用一个Slot,包括returnAddress类型,64位的类型(long和double)占用2个Slot,byte、short、char在存储之前转换为int,boolean在存储前转换为int,0标识false,1 标识true

局部变量表建立在线程私有的栈上,是线程安全的

JVM会为局部变量表的每个Slot分配一个访问索引,通过这个索引可以访问到局部变量表中的局部变量值

占用两个Slot的变量也就是double和long,只需要使用前一个索引即可

如果当前帧是由构造方法或者实例方法创建的,那么该对象引用this将会存在index为0 的Slot处,非静态方法,都会创建this的一个参数,index为0,其余的参数是按照顺序排放的,static 方法被不可以使用this是因为static方法中没有放this的index

 

JVM学习--局部变量表

标签:this   har   初始   局部变量   存储   ble   OLE   通过   不可   

原文地址:https://www.cnblogs.com/wangflower/p/12501804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!