
JVM
HackQ_sxj
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM_05虚拟机加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 一、类加载的时机 类从加载到虚拟机内存开始,到卸载出内存结束,生命周期:加载、连接(验证、准备、解析)、初始化、使用、卸载。 注意:加载、验证、准备、初始化、卸载这五个时严格按顺序开始的,但解析的过程有时会在初始化之后,这是为了支持Jav...原创 2019-11-20 17:10:40 · 193 阅读 · 0 评论 -
JVM_04类文件结构
之前已经学习了有关JVM的组成、内存泄漏原因、垃圾回收机制和内存的动态分配、以及常用的Java工具和JVM实战案例;现在开始学习Java类文件结构 一、Class类文件结构 1. 无关平台 Java语言的一大特性就是无关平台,其实现根本是在Java进行编译时,并非直接编译成能够被计算机读懂的本地二进制机器码,而是先转换成与操作系统、机器指令集无关的、平台中立的字节码文件进行存储;然后通过对字...原创 2019-11-18 13:41:17 · 212 阅读 · 0 评论 -
JVM_03调优案例分析
一、高性能硬件上的程序部署策略 1. 案例 一个网站服务器,原先配置为32位,给JVM堆内存大小为1.5GB,使用网站是比较缓慢但无明显卡顿。为了更好的用户体验,升级服务器为64位,16G内存;管理员选用64位jdk,设置JVM堆内存为12GB。但升级后的网站却不定期出现长时间无响应现象。 2. 原因 网站的无响应是由于GC停顿导致的,JVM在server模式,默认使用吞吐量优先的GC收集...原创 2019-11-15 11:01:24 · 258 阅读 · 0 评论 -
JVM_02垃圾回收GC&内存分配策略
一、 如何确定堆中对象是否“存活”? 1. 引用计数算法 给对象添加一个引用计数器,当有一个地方引用它,计数器加一;引用失效计数器减一,当计数器为0则对象不可能再被使用。 但是,Java语言并没有选用引用计数法来管理内存,主要原因时它很难解决对象之间相互循环引用的问题 2. 根搜索算法(GC Roots Tracing) 通过一系列名为“GC Roots”的对象作为起始点,从这个节点开始...原创 2019-11-13 17:06:14 · 168 阅读 · 0 评论 -
JVM_01虚拟机内存划分
JAVA技术:在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性。从而导致一旦出现Java内存区域和内存溢出异常时,如果不了解JVM的工作机制,排查错误将十分艰难。 1. JVM对其管理的内存区域划分 所划分的这些数据区域是线程隔离的。 1)程序计数器 时一块较小的内存空间,可作为线程所执行字节码的行号指示器。JVM的多线程通过其保证线程切换时能够恢复到正确位置,每条线程都需要一...原创 2019-11-13 10:51:58 · 345 阅读 · 0 评论