JVM
文章平均质量分 81
outlier--
最后我才知道,原来让我失去理智的东西叫病毒
展开
-
JVM类加载与双亲委派机制
文章目录类加载与字节码技术类文件结构魔数版本常量池...字节码指令编译期处理(语法糖)默认构造器(生成默认无参构造器)自动拆装箱泛型擦除可变参数(会根据传入参数个数创建大小一致的数组)foreach循环switch Stringswitch enum枚举类方法重写时的桥接方法匿名内部类类加载阶段加载链接初始化发生时机不会导致类初始化的情况类加载器双亲委派模式线程上下文类加载器自定义类加载器运行期优化逃逸分析分层编译(JIT)方法内联类加载与字节码技术源代码编译为字节码,经过类加载器把字节码加载到虚拟机中原创 2022-05-25 14:49:31 · 129 阅读 · 0 评论 -
类加载与双亲委派机制
目录类加载阶段加载链接初始化发生时机不会导致类初始化的情况类加载器双亲委派模式线程上下文类加载器自定义类加载器类加载阶段加载将类的字节码载入方法区中,内部采用c++的instanceKlass描述java类,重要filed有:每个实例对象都有对象头,实例对象头16个字节,其中八个字节对应它的class地址,获取class信息通过访问对象头,通过地址找到mirror,通过类对象去元空间找链接验证:验证类是否符合JVM规范,安全原创 2022-05-16 19:30:04 · 226 阅读 · 0 评论 -
JVM垃圾回收算法与垃圾回收器
目录判断垃圾引用计数法可达性分析算法五种引用强引用软引用弱引用虚引用(会关联引用队列)终结器引用(会关联引用队列)垃圾回收算法标记清除标记整理复制分代回收大对象oom垃圾回收器串行吞吐量优先响应时间优先(CMS)G1G1垃圾回收阶段新生代回收新生代回收+并发标记(CM)混合回收Full GC新生代垃圾回收跨代引用问题重新标记(remark)字符串去重判断垃圾引用计数法弊端:循环原创 2022-05-11 15:08:42 · 334 阅读 · 0 评论 -
GC调优案例
目录案例1:Fullgc和minorgc频繁案例2:请求高峰期发生fullgc,单次暂停时间特别长(CMS)案例3:老年代充裕情况下,发生fullgc案例1:Fullgc和minorgc频繁空间紧张,对象晋升阈值降低,导致本来很多生存周期很短的对象也会被晋升到老年代,进而导致频繁的fullgc的发生方法:因为新生代内存太小,内存优化先从新生代开始,适当调大新生代内存,内存充裕,新生代垃圾回收就没那么频繁,同时增大了幸存区的空间以及晋升的阈值,就可以让很多生命周期较短的对象尽可原创 2022-05-11 14:04:07 · 242 阅读 · 0 评论 -
JVM运行时数据区
目录程序计数器(寄存器)(线程私有)虚拟机栈(线程私有)栈内存越大越好吗方法内的局部变量线程安全吗栈内存溢出本地方法栈(线程私有)堆(线程共享)堆内存溢出堆内存诊断1.jps工具2.jmap工具3.jconsole工具4.jvisualvm工具方法区(线程共享)内存溢出运行时常量池字符串常量池变量拼接编译期优化(常量拼接)字符串延迟加载串池特性intern()串池的位置串池垃圾回收StringTable性..原创 2022-04-06 11:26:10 · 146 阅读 · 0 评论