java
八千里路云和月laiker
等记忆中最美的晚霞
展开
-
深入理解java内部类
>> 内部类是一种语法糖,在jvm虚拟机中并没有内部类这个概念。>> 在将java源码编译成字节码(class文件)过程中,内部类会被编译成单独的class文件,也就是说内部类被编译成了 普通类。>> 值得注意的是内部类对外部类的访问问题。1.普通内部类public class Test{ public int a; private int b;...原创 2019-09-28 13:21:37 · 136 阅读 · 0 评论 -
深入理解枚举类型
枚举类型是一种语法糖:它只是一种语法,是为了方便程序的编写,在编译器编译之后,它将被解读成标准的class类。也就是说,枚举仅仅是披在java语法上的美丽外衣。接下来我将根据一个简单的枚举类,通过分析它的反编译的class文件来理解枚举类的实质。1. 枚举可以这样理解:如果你想创建这样一个类:我只想new固定数量的实例对象,且不能多也不能少。那么你可能就需要使用枚举类型。枚举是满足这...原创 2019-10-05 17:44:23 · 337 阅读 · 0 评论 -
《java虚拟机规范SE7》整理——第二章:Java虚拟机结构
按照《java虚拟机规范SE7》章节顺序整理的笔记。第二章:java虚拟机的结构目录:数据类型运行时数据区栈帧浮点算法字节码指令集介绍一. 数据类型虚拟机可以操作的类型可以分为两类:原始类型引用类型<1> 原始类型原始类型包含 数值类型(byte,short,int,long,float,double,char),布尔类型(boolean),re...原创 2019-10-08 19:14:21 · 407 阅读 · 0 评论 -
《java虚拟机规范SE7》整理——第三章:为Java虚拟机编译
按照《java虚拟机规范SE7》章节顺序整理的笔记。目录:常量、局部变量的使用和控制结构算术运算访问运行时常量池接收参数方法调用使用类实例数组编译switch语句第三章:为java虚拟机编译第三章讨论的主要是java虚拟机对java源文件的编译,这个过程体现在将java代码编译成字节码指令,也就是class文件的过程,而并没有包含将java代码编译成可由cpu执行的机...原创 2019-10-09 15:16:59 · 373 阅读 · 0 评论 -
《java虚拟机规范SE7》整理——第四章:Class文件格式
按照《java虚拟机规范SE7》章节顺序整理的笔记。目录:ClassFile格式(注:也就是class文件的总结构)第四章:class文件格式这一章详细的介绍了class文件的格式,包括class文件的格式,class文件具体的内容。这些内容均可以通过自己编写一个简单的类,并使用javap反编译来对照着阅读。<1>. ClassFile格式这表示class文件...原创 2019-10-10 11:50:53 · 496 阅读 · 0 评论 -
《java虚拟机规范SE7》整理——第五章:加载,链接与初始化
按照《java虚拟机规范SE7》章节顺序整理的笔记。目录:运行时常量池虚拟机启动创建和加载链接初始化绑定本地方法实现Java虚拟机退出第四章:加载,链接与初始化java虚拟机加载的对象当然是针对class文件(字节码文件),这个文件的构成以及编译器的编译过程,在前面三章已经有了很全面的介绍。加载的工作是将二进制的字节码文件加载如虚拟机中。链接的作用当然是为了让这个将...原创 2019-10-11 10:52:04 · 147 阅读 · 0 评论