JVM
1303575952
这个作者很懒,什么都没留下…
展开
-
初识JVM
JVM:Java Virtual Machine。虚拟机:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。例VMWare、Visual Box、JVM。(其中VMWare或者Visual Box都是使用软件模拟物理CPU的指令集;JVM使用软件模拟Java字节码的指令集)Java语言规范语法定义词法结构类型和变量JVM规范JVM主要定义二进制class文件和JVM指...原创 2018-04-14 14:57:28 · 130 阅读 · 0 评论 -
JVM运行机制
JVM启动流程Java XXX装载配置根据配置寻找JVM.dll初始化JVM获得JNIEnv接口找到main方法并运行 根据当前路径和系统版本寻找jvm.cfgJVM.dll为JVM主要实现JNIEnv为JVM接口,findClass等操作通过它实现 JVM基本结构PC寄存器:——每一个线程拥有一个PC寄存器——在线程创建时创建——指向下一条指令的地址——执行本地方法时,值为undefined方法...原创 2018-04-14 17:30:15 · 196 阅读 · 0 评论 -
常用JVM配置参数
Trace跟踪参数打开GC方式:1.-verbose:gc;2.-XX:+printGC-XX:+PrintGCDetails打印GC详细信息-XX:+PrintGCTimeStamps打印CG发生的时间戳-Xloggc:log/gc.log指定GC log的位置,以文件输出,帮助开发人员分析问题-XX:+PrintHeapAtGC每次一次GC后,都打印堆信息-XX:+TraceClassLoad...原创 2018-04-14 22:58:11 · 111 阅读 · 0 评论 -
GC算法与种类
GC概念Garbage CollectionJava中GC对象是堆空间和永久区GC算法——引用计数法引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,则对象A就不可能再被使用。引用计数法的问题:引用和去引用伴随加法和减法,影响性能;很难处理循环引用。——标记清除法标记-清除算法是现代垃圾回收算...原创 2018-04-15 12:26:10 · 142 阅读 · 0 评论 -
GC参数
串行收集器最古老,最稳定,效率高,可能会产生较长的停顿。-XX:+UseSerialGC新生代、老年代使用串行回收新生代复制算法老年代标记-压缩并行收集器ParNew-XX:+UseParNewGC新生代并行老年代串行Serial收集器新生代的并行版本复制算法多线程,需要多核支持-XX:ParallelGCThreads 限制线程数量Parallel收集器类似ParNew新生代复制算法老年代 标记...原创 2018-04-15 12:47:44 · 243 阅读 · 0 评论 -
类装载器
class装载验证流程加载装载类的第一个阶段取得类的二进制流转为方法区数据结构在Java堆中生成对应的java.lang.Class对象链接——验证目的:保证Class流的格式是正确的-文件格式的验证是否以0xCAFEBABE开头版本号是否合理-元数据验证是否有父类继承了final类?非抽象类实现了所有的抽象方法-字节码验证 (很复杂)运行检查栈数据类型和操作码数据参数吻合跳转指令指定到合理的位置...原创 2018-04-15 13:55:07 · 167 阅读 · 0 评论