JVM-中的一些概念理解

1.class文件结构存放依次为 

1.魔数 判断是否可以被虚拟机接受的class文件

2.版本号

3.常量池 主要存放字面量和符号引用;

4.访问标志 用于识别一些类或者接口层次的访问信息 包括:这个class是类还是接口 是否定义为public类型 是否定义为abstract类型等等;

5.类索引 父类索引与接口索引集合,用来确定这个类的继承关系;

6.字段表集合,用于描述接口或者类中声明的变量

7.方法表集合

8.属性表集合


概念名词理解

2. 字面量

百度百科解释: 在计算机科学中, 字面量(literal)是用于表达源代码中一个固定值的表示法(notation). 几乎所有计算机编程语言都具有对基本值的字面量表示, 诸如: 整数, 浮点数以及字符串; 而有很多也对布尔类型和字符类型的值也支持字面量表示; 还有一些甚至对枚举类型的元素以及像数组, 记录和对象等复合类型的值也支持字面量表示法.

很抽象, 举个例子就明白了.

int i = 1;把整数1赋值给int型变量i,整数1就是Java字面量,

String s = "abc";中的abc也是字面量。

3. 符号引用

符号引用以一组符号来描述所引用的目标, 符号可以是任何形式的字面量, 只要使用时能够无歧义的定位到目标即可. 例如, 在Java中, 一个Java类将会编译成一个class文件. 在编译时, Java类并不知道所引用的类的实际地址, 因此只能使用符号引用来代替. 比如org.simple.People类引用了org.simple.Language类, 在编译时People类并不知道Language类的实际内存地址, 因此只能使用符号org.simple.Language来表示Language类的地址.

4. 直接引用

直接引用可以是:

直接指向目标的指针.(个人理解为: 指向方法区中类对象, 类变量和类方法的指针)

相对偏移量. (指向实例的变量, 方法的指针)

一个间接定位到对象的句柄.

我觉得直接引用说白了, 就是程序运行时可以定位到引用的东西(类, 对象, 变量或者方法等)的地址.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容