标签: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
标签:this har 初始 局部变量 存储 ble OLE 通过 不可
原文地址:https://www.cnblogs.com/wangflower/p/12501804.html