
初探JVM系列
文章平均质量分 95
zpoison
软件工程师
展开
-
初探JVM系列(一) JVM运行时数据区
主要内容JVM运行时数据区线程安全逻辑图一.JVM运行时数Java虚拟机在执行java程序的过程中会把它管理的内存划分为若干个不同的数据区域如图1.1: 1) 程序计数器:指向当前线程正在执行的字节码的地址或行号;如果执行的是Native方法,计数器的值为空(Undefined)个人理解图:程序计数器记录当前线程的地址,当A线程cup资源被抢着后再次执行A线程,可以快速找到A线程。 2) ja...原创 2018-05-22 11:40:33 · 341 阅读 · 0 评论 -
初探JVM系列(二)垃圾回收器和内存分配策略
初探JVM系列博客 主要内容: 垃圾回收算法 HotSpot的算法实现 垃圾回收器 回收时间点 1.垃圾回收算法 1.1标记-清除算法:分为标记和清除两个阶段,首先标记需要回收的对象,标记完成后统一回收 缺点: 效率问题:标记和回收的效率都不高; 空间问题:会产生大量不连续的内存碎片 1.2复制回收算法:为了解决标记-清除算法内存碎片化的缺陷而被提出的算法。按内...原创 2018-05-22 17:10:13 · 303 阅读 · 0 评论 -
初探JVM系列(三)虚拟机类加载机制
主要内容:JVM加载机制类加载时机类加载生命周期1 .JVM加载机制: Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制。2.类加载时机 2.1主动引用:创建类的实例(new)、读取静态变量、对该静态变量赋值(被fianl修饰的的在编译期把结果放入常量池的静态字段除外)...原创 2018-05-23 16:09:15 · 223 阅读 · 0 评论 -
初探JVM系列(四) Java 内存模型
基础并发编程的模型分类在并发编程需要处理的两个关键问题是:线程之间如何通信 和 线程之间如何同步。通信通信 是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存 和 消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来显式进行通信...原创 2018-05-24 11:27:24 · 300 阅读 · 0 评论 -
初探JVM系列
为了总结梳理自己的技术体系定更新自己的技术博客,增强自己的总结和表达能力。 初探JVM系列主要包括: 初探JVM系列(一) JVM运行时数据区 初探JVM系列(二)垃圾回收器和内存分配策略 初探JVM系列(三)虚拟机类加载机制 初探JVM系列(四) Java 内存模型 ...原创 2018-05-30 09:09:49 · 449 阅读 · 0 评论