自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 第八章 虚拟机字节码执行引擎

1. 运行时栈帧结构栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构每一个栈帧中存储了方法的局部变量表,操作数栈, 动态连接和方法返回地址。每一个方法调用的开始直至执行完成的过程,都是一个对应的栈帧从入栈到出栈的过程。在编译程序代码的时候,栈帧中需要多大的局部变量表,多深的操作数栈都已经完全确定了栈帧具体分配多少的内存,取决于具体的虚拟机实现。而不会受到运行时期的数据变化的影响

2016-09-16 20:02:42 603

原创 单例模式

单例模式的双检锁写法public class DoubleCheckedLock { private static DoubleCheckedLock instance; public static DoubleCheckedLock getInstance() { if (instance == null) {

2016-08-17 15:26:00 256

原创 Lrucache源码分析

LruCache源码分析1. Lrucache封装了LinkedHashMap,并将LinkedHashMap的accessOrder设为true。可以使遍历顺序和访问顺序一致,其内部双向链表将会按照近期最少访问到近期最多访问的顺序排列Entry对象,这可以用来做缓存。2.LruCache通过trimToSize方法自动删除最近最少访问的键值对;3.LruCache不允许空键值

2016-08-03 16:49:57 422

原创 第7章 虚拟机类加载机制

1. 类的生命周期类的整个生命周期包括:加载,验证,准备,解析,初始化,使用,卸载7个阶段。如下图所示其中,加载,验证,准备,初始化,使用这5个阶段是确定的,而解析阶段则不确定,它在某些情况下可以在初始化之后再进行。这是为了支持java的动态绑定特性。 1.1 加载在加载阶段,虚拟机要完成以下三件事情:1. 通过一个类的全限定名来获取此类的二进制流2

2016-07-28 14:12:58 286

原创 第3章 垃圾收集器与内存分配策略

1. 判断对象的生死判断对象的生死由两种方法:1. 引用计数法 2. 可达性分析算法1.1 引用计数法引用计数法就是为对象添加一个引用计数器,每当有一个地方引用它时,计数器的值就加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的。优点:简单高效缺点:无法解决对象之间相互循环引用的问题。因为它的缺点,Java虚拟机没有选用引

2016-07-16 21:34:31 516

原创 第2章 Java内存区域与内存溢出异常

1. 虚拟机运行时数据区域1.1 Java虚拟机运行时数据区图注:图中浅蓝色部分为线程共享区, 图中的白色部分为线程私有部分 1.2 线程共享线程共享部分的所有区的生命周期和所属虚拟机的生命周期是相同的。1.2.1 方法区方法区用于存储已经被虚拟机加载的 类信息,常量,静态变量,即时编译器编译后的代码等数据。在JDK1.7之前

2016-07-14 19:49:29 360

原创 排序算法总结

1. 插入排序算法步骤叙述:对于一个给定的序列, 初始时假设第一个记录自成一个有序序列, 其余记录为无序序列。接着从第二个记录开始, 按照记录的大小依次将当前处理的记录插入到其之前的有序序列之中,直至最后一个记录插入到有序序列中为止。插入排序图示:初始数组为:5,2,4,6,1,3 java实现: /** * 插入排序 * @

2016-07-13 13:41:49 560

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除