JVM
Stitch__
菜是原罪
展开
-
JVM1 内存模型/对象访问定位
.java .class(字节码文件)javac : 编译指令Javadoc 指令:它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。javadoc命令是用来生成自己API文档的,使用方式:使用命令行在目标文件所在目录输入javadoc +文...原创 2019-09-06 11:16:03 · 133 阅读 · 0 评论 -
JVM2垃圾回收算法
JVM 运行时分区中,虚拟机栈,本地方法区,程序计数器。都是线程私有的,它们随线成生而生,随线成死而死,所以只有Java堆和方法区是需要内存回收的。虚拟栈每一个栈帧在入栈之前(方法运行时入栈)所需要的内存大小在类的结构确定时就已知。到那时堆和方法区不同:例如:一个接口有哪些实现,那些实现需要的内存是不一样的,一个方法中的多个分支需要的内存也不一样,只有在程序运行的过程中才知道到会创建那些对象,这...原创 2019-09-07 20:10:59 · 154 阅读 · 0 评论 -
JVM3 安全点/安全区/垃圾回收器
PART ONE:HotSpot的算法实现枚举根节点:可达性分析找引用链的过程,可以作为GCRoot 节点的引用,一本为全局引用(静常量或者静态引用)和执行上下文(栈帧中的本地变量表),要逐个检查里面有没有引用,势必会消耗很多时间可达性分析的敏感点在于时间的停顿,因为再进行这项操作的时候必须要保持一致性,”一致性:“整个执行系统看起来象被冻结了一样停顿早某个时间点,不可以出现在进行可达性分析...原创 2019-09-10 10:47:11 · 658 阅读 · 0 评论 -
JVM4 类加载/类加载器
程序的class文件是程序编译的产物,虚拟机把描述类的数据从Class文件加载到内存中,并进行数据校验,转换解析和初始化,最终形成可以直接被虚拟机使用的Java类型------这叫虚拟机的类加载机制。一些语言在编译的时候需要进行连接工作,但是Java中,类型的加载,连接和初始化都是在程序运行期间做的。类的生命周期类从被加载到虚拟机开始到卸载出内存为止,整个生命周期:加载,(验证,准备,解...原创 2019-09-10 21:31:39 · 178 阅读 · 0 评论