JVM
Attention_0
这个作者很懒,什么都没留下…
展开
-
类加载
类的生命周期: 类的生命周期 加载和链接,链接不是完全等加载完毕之后才执行,而是一个并行执行的过程; 初始化的情况: 遇到new、getstatic、putstatic、invokestatic这4条字节码指令时,如果类没有进行初始化,则需要先触发初始化; 使用Java.lang.reflect包的方法对类进行反射调用的时候,如果没有进行过初始化,则需要先触发其初始化; 当初初始...原创 2020-01-12 20:33:06 · 233 阅读 · 0 评论 -
Class文件结构
class文件总体结构: 1.Magic Value(魔数) class文件的第一行的前四个字节CA FE BA BE(十六进制),在JVM在执行class字节码文件的时候,会检查前四个字节是否为这个值,如果不是这个值就不是一个合法的java编译器编译过来的字节码文件,JVM就不会去执行它; 第一行的后四个字节为jdk的版本号 00 00(次版本) 00 34(主版本) (十六进...原创 2020-01-11 18:51:16 · 358 阅读 · 0 评论 -
JVM垃圾回收
如何判定垃圾对象: 引用计数法 为每一个对象添加一个引用计数器,当有地方对该对象有引用的时候,引用计数器+1,当引用失效的时候,引用计数器-1 直到引用计数为0,该对象就变为了无用的对象 优点:算法简单,效率高 缺点:不能解决循环引用的垃圾对象的情况 打印GC收集的日志配置参数:-verbose:gc -XX:+PrintGCDetails 可达性分析法 把程序在堆中创...原创 2020-01-02 15:55:46 · 219 阅读 · 0 评论 -
JVM内存区域
JVM整体示意图: JVM内存区域 程序计数器: 程序计数器是一块较小的内存空间,它可以看作是当前线程执行行的字节码的行号指示器(goto可以看作是按照这个行号跳转); 程序计数器处于线程独占区,每一个线程都有一份; 如果线程执行的是Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的是native方法,这个计数器的值为undefined; 此区域是唯一一...原创 2019-12-30 12:14:00 · 196 阅读 · 0 评论