摘要: 类加载:将Class文件中的数据加载到内存,对数据校验,转化解析,初始化,最终形成可被虚拟机直接使用的Java类型 生命周期:加载 验证 准备 解析 初始化 使用 卸载 类加载的过程包括了加载、验证、准备、解析、初始化五个阶段,解析阶段执行顺序不确定,可以在初始化阶段之后开始(支持动态绑定),这几个 阅读全文
posted @ 2017-06-18 21:00 雪浪snowWave 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 静态绑定:即前期绑定。在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。针对java,简单的可以理解为程序编译期的绑定。java当中的方法只有final,static,private和构造方法是前期绑定的。 动态绑定:即晚期绑定,也叫运行时绑定。在运行时根据具体对象的类型进行绑定。在jav 阅读全文
posted @ 2017-06-18 20:36 雪浪snowWave 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 判断对象需要回收:1.引用计数法:给对象加上一个计数器,当有一个地方引用它, 计数器+1,引用失效时,计数器-1,当计数器为0时,判定该对象可回收 此方法无法检测循环引用 导致内存泄漏 2.可达性算法:指通过称为GC-Roots的对象为起始点,从这些结点向下搜索, 当从GCRoots到这个对象不可达 阅读全文
posted @ 2017-06-18 18:28 雪浪snowWave 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区包括五部分: 程序计数器,JVM栈,本地方法栈,堆,方法区,前三种线程私有,后两种内存分配是动态的,所以GC只关注这两部分。 程序计数器:线程执行字节码的行号指示器,记录字节码指令地址,执行本地方法为空 JVM栈:方法执行时建立栈帧,存放 局部变量表,基本数据类型的值,对象引用,动态链接 阅读全文
posted @ 2017-06-18 17:06 雪浪snowWave 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 2-3查找树:包含2-(一个键,两条链)节点和3-(两个键,三条链)节点的查找树 所有空链到根节点的距离相同 插入时:当插入的值导致节点变四叉时进行分裂,将中间的值传给上一个节点, 并将另外两个值作为两个子节点分开,若上一节点也因此变成四叉, 依次类推 它是由下向上生长的 插入和查找操作访问节点不超 阅读全文
posted @ 2017-06-18 12:23 雪浪snowWave 阅读(132) 评论(0) 推荐(0) 编辑