Java虚拟机
文章平均质量分 79
WYCPhoenix
东南大学信号与信息处理研究生
展开
-
深入理解Java虚拟机JVM高级特性与最佳实践阅读总结——第二章 Java内存区域与内存溢出异常
程序计数器program counter register:字节码解释器所需要执行的下一条字节码地址,由于虚拟机的多线程机制,每个线程都有一个独立的程序计数器,线程私有,各计数器之间独立存储;如果执行的是Java方法,计数器记录的是正在执行的虚拟机字节码地址;如果执行的是native方法,计数器为空(undefined);此内存区域是唯一没有规定OutOfMemoryError情况的区域原创 2017-02-28 22:50:10 · 338 阅读 · 0 评论 -
深入理解Java虚拟机JVM高级特性与最佳实践阅读总结——第三章垃圾收集器与内存分配策略
引用计数法:给对象添加引用计数器,每当有一个地方引用它时,计数器值加1,;引用失效则计数器值减一,任何计数值为0的对象就是不可能被使用的 特点:简单高效,但不能解决对象之间的循环引用 可达性分析算法:以GC Roots作为起点,从这些节点开始向下搜索,搜索路径称为引用链,当一个对象到GC Roots之间不存在引用链时,该对象就是不可用的 可以用作GC Roots的对象,一般是全局性引原创 2017-02-28 22:47:06 · 659 阅读 · 0 评论 -
深入理解Java虚拟机JVM高级特性与最佳实践阅读总结—— 第七章 虚拟机类加载机制
类加载机制,将描述类的class文件加载到内存,并对数据进行校验、转换接卸、初始化,最终形成尅被虚拟机直接使用的Java数据类型 Java中,类型的加载、连接、初始化都是在程序运行期间完成,动态加载和动态连接也是Java动态扩展的实现 类加载时机 一个类从加载进内存到从内存卸载,生命周期包括: 1、加载:加载时机有虚拟机确定 2、验证 3、准备 4、解析 5、初始化,遇到如原创 2017-03-01 11:44:03 · 358 阅读 · 0 评论 -
深入理解Java虚拟机JVM高级特性与最佳实践阅读总结—— 第十二章 Java内存模型与线程
Java内存模型JMM,主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存读取变量的底层细节,这里的变量不包括线程私有的变量,如局部参数;内存模型规定所有变量存储在主内存;每个线程都有自己的工作内存,其中保存了该线程用到的变量的主内存的副本;注意,线程对变量的所有操作都必须在工作内存中进行,不能直接读写主内存的变量; 内存间的交互动作,即工作内存与主内存之间的拷原创 2017-03-01 21:14:52 · 1072 阅读 · 0 评论 -
深入理解Java虚拟机JVM高级特性与最佳实践阅读总结—— 第十三章 线程安全与锁优化
线程安全,当多个线程访问同一个对象时,无论系统的调度方式、线程的交替执行方式、也不需要额外的同步手段、调用方法时不需要额外的协同,调用这个对象的都可以得到正确的结果 按照线程安全的强弱,分为五大类 1、不可变Immutable,不可变对象一定是线程安全的,对象的方法实现和调用都不需要同步;前提是不可变对象被正确创建(不发生this引用逃逸),事实不可变对象也是线程安原创 2017-03-02 10:50:46 · 368 阅读 · 0 评论