深入理解JVM虚拟机
鱼儿焕音
这个作者很懒,什么都没留下…
展开
-
5. 调优案例分析与实战 略(没太看懂----)
1.高性能硬件上的程序部署策略: 通过64位JDK来使用大内存 问题: 内存回收时停顿时间长 64位性能低于32位 无法产生堆转储快照(数据量太大) 相同程序消耗内存相比于32位的会更多 适用若干个32位虚拟机简历逻辑集群 问题: 尽量避免节点竞争全局的资源,磁盘竞争,各个节点如果同时访问某个磁盘文件,很容易导致IO异常 很难最高效的利用资源池 ...原创 2019-02-28 16:22:51 · 169 阅读 · 0 评论 -
6. 类文件结构
各种不同平台的虚拟机与所有平台都统一使用的程序存储格式--字节码,是构成平台·无关性的基石。 Class文件是一组以8位字节为单位的二进制流。 首先,class文件的前四个字节是魔数,唯一作用就是确定这个文件是否为一个能被虚拟机接受的class文件。之后是版本号,分别是两个字节的主版本号,两个字节的次版本号。 紧接着,版本号的是常量池的入口,(存放:字面量,符号引用【类和接口的全...原创 2019-02-28 17:03:28 · 157 阅读 · 0 评论 -
7. 类虚拟机类加载机制
jvm运行和类加载过程 Java中几种常量池的区分:http://www.cnblogs.com/holos/p/6603379.html 类加载过程 例子: public class StaticTest extends Father { public static int input = 100; static { System.out....原创 2019-02-28 17:34:27 · 131 阅读 · 0 评论 -
走进Java
1.Java的优点: 摆脱了硬件平台的束缚,实现了一次编写,到处运行的理想。(虚拟机) 提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题。(GC,垃圾回收机制) 实现了热点代码检测和运行时编译及优化。(虚拟机) 鞍山的程序接口,很多第三方类库-- 2.JDK和JRE关系 这里说明一下2个JRE的区别。 首先与JDK并行的JRE,是非开发人员使用的J...原创 2019-02-26 20:27:35 · 209 阅读 · 0 评论 -
2. Java内存区域与内存溢出异常
1.运行时数据区域: java虚拟机运行时数据区 (1). 程序计数器:较小的内存空间,他可以看成当前线程所执行的字节码行号的指示器。 如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native(非Java代码接口)方法,这个计数器值则为空。 这是唯一一个在Java虚拟机中不会抛出OutOfMemoryError的区域。 ...原创 2019-02-26 20:33:32 · 131 阅读 · 0 评论 -
3. 垃圾收集器 和 内存分配策略
1.GC垃圾回收机制 引用计数:在进行垃圾回收的时候首先要判断对象是否存活,一种方法是采用引用计数法,但是主流的Java虚拟机并不是采用这种方法,因为引用计数方法无法解决对象相互循环引用的问题。 可达性分析:在主流的商用程序语言中(Java和C#),都是使用可达性分析算法判断对象是否存活的。这个算法的基本思路就是通过一系列名为GC Roots的对象作为起始点,从这些节点开始向下搜索,搜索所走过...原创 2019-02-26 20:35:54 · 133 阅读 · 0 评论 -
4. 虚拟机性能监控和故障处理工具
1.JDK命令行工具:windows下可以使用,linux也可以使用 https://blog.csdn.net/WinWill2012/article/details/46364923 2.Java VisualVM:在Java bin 目录下 直接打开即可 测试trace 插件 测试用例: 脚本: /* BTrace Script Template */ import co...原创 2019-02-27 09:49:39 · 180 阅读 · 0 评论