JVM
JVM
随风去。
莫道浮云终蔽日,严冬过尽春蓓蕾。
展开
-
Java类加载机制
1.JDK/JRE/JVM的关系: JDK 8是JRE 8的超集,包含了JRE 8中的所有内容,编译器和调试器等开发applet和应用程序。JRE 8提供了库、Java虚拟机(JVM)和运行用Java编程编写的applet和应用程序的其他组件语言。注意,JRE包含了Java SE不需要的组件,规范,包括标准和非标准Java组件。 目前工作中常用的JDK版本为1.8,所以定位到官网...原创 2020-02-22 18:21:00 · 884 阅读 · 2 评论 -
JVM GC日志分析及性能优化
重新认知JVM: 通过前面从Class文件到类装载器,再到运行时数据区的过程。我们画张图展示了JVM的大体物理结构图。GC优化: 内存被使用了之后,难免会有不够用或者达到设定值的时候,就需要对内存空间进行垃圾回收。 GC是由JVM自动完成的,根据JVM系统环境而定,所以时机是不确定的。 当然,我们可以手动进行垃圾回收,比如调用System.gc()方法通知JVM进行一次垃...原创 2020-03-13 15:34:00 · 577 阅读 · 0 评论 -
JVM常用参数/命令/工具
JVM参数类型:标准参数: -version,-help,-server,-cp-X参数: 非标准参数,也就是在JDK各个版本中可能会变动 -Xint 解释执行,-Xcomp 第一次使用就编译成本地代码,-Xmixed 混合模式,JVM自己来决定-XX参数: 使用得最多的参数类型,非标准化参数,相对不稳定,主要用于JVM调优和Debug。Boole...原创 2020-03-12 15:30:00 · 317 阅读 · 0 评论 -
JVM垃圾回收GarbageCollect
如何确定一个对象是垃圾? 要想进行垃圾回收,得先知道什么样的对象是垃圾。引用计数法: 对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。 弊端 :如果AB相互持有引用,导致永远不能被回收。可达性分析: 通过GC Root的对象,开始向下寻找,看某个对象是否可达。 能作为GC Root:类加载器、T...原创 2020-03-12 10:54:00 · 335 阅读 · 1 评论 -
JVM运行时数据区(Run-TimeDataAreas)及内存结构
运行时数据区: 在类加载阶段的第2,3步可以涉及有运行时数据,堆,方法区等名词。( 2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。3.在Java堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口 ) 说白了就是类文件被类装载器装载进来之后,类中的内容(比如变量,常量,方法,对象等)这些数据得要有个去处,也就是要存储起来...原创 2020-03-10 15:09:00 · 914 阅读 · 2 评论