KEEP ON CODING......

随笔分类 -  深入理解JAVA虚拟机

《深入理解JAVA虚拟机》读书笔记,JAVA虚拟机相关内容学习及实践
摘要:一、基本垃圾回收算法 1. 判断对象是否需要回收的方法(如何判断垃圾): 1) 引用计数(Reference Counting) 对象增加一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 2) 可达性分析算法(Reac 阅读全文
posted @ 2017-08-07 19:55 Cecil2020 阅读(196) 评论(0) 推荐(0)
摘要:一、 运行数据区域划分 各个数据区域功能如下: 1. 程序计数器: 较小的一块内存空间,可以看做是当前线程所执行的字节码的行号指示器,每条线程都有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,这类内存区域称为“线程私有”的内存。 如果线程正在执行的是一个Java方法,这个计数器记录的是 阅读全文
posted @ 2017-08-04 17:38 Cecil2020 阅读(245) 评论(0) 推荐(0)
摘要:一、概念 “通过一个类的全限定名来获取描述此类的二进制字节流”,实现这个动作的代码模块成为 类加载器。 二、分类 从java开发人员的角度出发,系统提供的类加载器大致分为如下3类: 1、启动类加载器(Bootstrap ClassLoader) 负责将存放在<JAVA_HOME>/lib目录中的,或 阅读全文
posted @ 2017-02-09 13:54 Cecil2020 阅读(235) 评论(0) 推荐(0)
摘要:一、类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载 7个阶段,其中验证、准备、解析 3个部分统称为 连接。 二、具体步骤解析 1、加载 加载阶段,虚拟机要完成以下3件事情: 1)通过一个类的全限定名来获取定义此类的二进制 阅读全文
posted @ 2017-02-08 17:32 Cecil2020 阅读(273) 评论(0) 推荐(0)
摘要:在 JAVA 中,有六个不同的地方可以存储数据: 1. 寄存器( register ): 最快的存储区,因为它位于不同于其他存储区——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 2. 栈( stack ):位于 阅读全文
posted @ 2016-09-30 14:37 Cecil2020 阅读(737) 评论(0) 推荐(0)