JVM
由浅入神,由理论到时间,成体系的总结输出
双子孤狼
关注孤狼,和孤狼一起学习!
知道的多一点,不知道的就少一点!
创作不易,如需转载,请注明出处!
展开
-
【JVM系列8】JVM经典面试问题(内存溢出和内存泄露)解答及调优实战分析
JVM经典面试问题解答及调优实战分析前言常见问题及调优实战1、内存泄漏与内存溢出的区别2、如何防止内存泄露3、GCRoot不可达的对象一定会被回收吗4、Young GC会有STW吗5、Major GC和Full GC的区别6、方法区会发生GC吗7、什么是直接内存8、CMS收集器和G1收集器的区别9、类加载机制经过哪些步骤10、系统CPU经常100%,如何定位总结前言JVM系列介绍到这里,其实理论知识和基本工具的使用基本上都介绍过了,当然,JVM的理论知识也不仅仅只是这些,如果想要更深入的里面还是会有很多原创 2020-08-30 11:28:53 · 3152 阅读 · 6 评论 -
【JVM系列7】如何通过分析GC日志来进行JVM调优
GC日志分析前言什么时候会发生垃圾收集怎么拿到GC日志PS+PO日志分析墙钟时间和cpu时间CMS日志分析G1日志分析利用工具分析GC日志gceasyGCViewer总结前言上一篇,我们介绍了JVM参数以及jdk提供的一些常用工具的使用,并且结合一个OOM例子,简单讲述了如何利用工具来分析dump文件,那么本篇文章,将会介绍一个如何分析GC日志。不同的垃圾收集器产生的GC日志大致遵循了同一个规则,只是有些许不同,不过对于G1收集器的GC日志和其他垃圾收集器有较大差别,话不多说,正式进入正文。。。什么原创 2020-08-28 10:08:04 · 1762 阅读 · 7 评论 -
【JVM系列6】JDK常用监控指令和监控工具分析及OutOfMemory异常分析
jvm参数的认知和监控工具的使用前言JVM参数标准参数-X参数-XX参数Boolean型打印所有JVM参数非Boolean型其他参数常用JVM参数常用命令监控工具jpsjstat查看类装载信息查看垃圾收集信息jstat参数常用选项jstackjstack参数常用选项jinfojmapjhat可视化监控工具JConsole工具VisualVM工具插件使用和下载分析dump文件其他工具总结前言JVM系列前5篇文章相对偏向于理论,从这篇开始将会结合实际场景进行分析以及如何对JVM进行调优。JVM参数所谓的原创 2020-08-25 19:28:11 · 1766 阅读 · 12 评论 -
【JVM系列5】深入分析Java垃圾收集算法和常用垃圾收集器
深入分析Java垃圾收集算法和垃圾收集器前言如何确定无效对象引用计数法(Reference Counting)可达性分析算法(Reachability Analysis)GC Root引用的分类强引用(Strong Reference)软引用(Soft Reference)弱引用(Weak Reference)虚引用(Phantom Reference)垃圾收集算法标记-清除(Mark-Sweep)算法标记-清除算法的缺点复制(Copying)算法复制算法的缺点复制算法在Java虚拟机的落地形式标记-整理(原创 2020-08-23 11:17:57 · 2710 阅读 · 10 评论 -
【JVM系列4】new Object()到底占用几个字节,看完这篇就彻底明白了
Java对象的内存布局及堆内存划分前言对象的指向Java内存模型Object obj=new Object()占用字节对象的访问句柄访问和直接指针访问对比堆内存Young区Old区名词扫盲一个对象的人生轨迹图总结前言上一篇我们分析了Java虚拟机方法执行流程及方法重载和方法重写原理,并分析了方法的调用过程及原理,Java虚拟机栈是线程私有的,没有数据安全问题,而堆相比较于Java虚拟机栈而言更为复杂,因为堆是所有线程共享的一块内存空间,会出现线程安全性问题,而垃圾回收也主要是回收堆内空间,所以堆内的布局原创 2020-08-19 19:28:35 · 4805 阅读 · 26 评论 -
【JVM系列3】方法重载和方法重写原理分析,看完这篇终于彻底搞懂了
深入分析Java虚拟机中方法执行流程及方法重载和方法重写原理前言思考栈帧局部变量表(Local Variables)操作数栈(Operand Stacks)动态连接(Dynamic Linking)方法返回地址正常退出(Normal Method Invocation Completion)异常终止(Abrupt Method Invocation Completion)其他附加信息方法调用流程演示方法调用分析方法调用指令方法解析非虚方法方法重载宗量静态分派方法重写动态分派单分派与多分派总结前言JVM执原创 2020-08-15 19:43:39 · 2112 阅读 · 17 评论 -
【JVM系列2】Java虚拟机类加载机制及双亲委派模式分析
类加载机制及双亲委派模式前言编译Class文件Class文件结构Class文件示例魔数主次版本号其他类加载机制加载(Loading)双亲委派模式破坏双亲委派模式常见异常ClassNotFoundException和NoClassDefFoundError连接(Linking)验证(Verification)准备(Preparation)解析(Resolution)常见异常符号引用直接引用初始化(Initialization)初始化顺序初始化实战举例使用(Using)卸载(Unloading)总结前言上一原创 2020-08-12 11:46:21 · 1866 阅读 · 13 评论 -
【JVM系列1】深入分析Java虚拟机堆和栈及OutOfMemory异常产生原因
Java虚拟机中的堆和栈前言什么是JVMJava程序执行流程运行时数据区PC(program counter) Register(程序计数器)Heap(堆)模拟堆内OutOfMemoryErrorMethod Area(方法区)Run-Time Constant Pool(运行时常量池)字面量String字符串去哪了intern()方法new String("lonely")创建了几个对象符号引用jdk1.7和1.8的实现方法区的差异模拟方法区OutOfMemoryErrorjdk1.7及之前版本jdk1.原创 2020-08-08 11:18:02 · 3945 阅读 · 17 评论