
JVM
weijx_
这个作者很懒,什么都没留下…
展开
-
JVM学习之常用的查看JVM的工具
常用的查看JVM的工具1使用jdk自带的 jconsole直接在cmd命令中打入jconsole,就会弹出一个窗体然后选择对应的pid即可2 使用jvisualvm,同上,直接命令输入安装 visual GC可本地连接,也可远程连接Arthas也可以查看,不举例了。3.MATJava堆分析器,用于查找内存泄漏Heap Dump,称为堆转储文件,是Jav...原创 2020-02-25 17:02:09 · 1027 阅读 · 0 评论 -
JVM学习之JVM参数和常用命令
JVM参数JVM参数分为四种: 标准参数、-X参数 、-XX参数、其他参数1.标准参数-version、 -help、 -server、 -cp2. -X参数非标准参数,也就是在JDK各个版本中可能会变动-Xint 解释执行-Xcomp 第一次使用就编译成本地代码-Xmixed 混合模式,JVM自己来决定3. -XX参数使用得最多的参数类型:非标准化参数,...原创 2020-02-18 14:46:02 · 314 阅读 · 0 评论 -
JVM学习之垃圾回收
如何确定一个对象是垃圾?对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。通过GC Root的对象,开始向下寻找,看某个对象是否可达例子:opt2==引用—》引用其他对象—》其他对象person 只要这条链路上的对象被引用,那么就不能称他们为垃圾,即不可回收;一般情况下只针对堆进行垃圾回收。方法区、栈和本地方法区不...原创 2020-02-10 14:25:37 · 266 阅读 · 0 评论 -
JVM学习之 Java对象内存布局
Java对象内存布局一个Java对象在内存中包括3个部分:对象头、实例数据和对齐填充一块是非堆区,一块是堆区。堆区分为两大块,一个是Old区,一个是Young区。Young区分为两大块,一个是Survivor区(S0+S1),一块是Eden区。 Eden:S0:S1=8:1:1S0和S1一样大,也可以叫From和To。根据之前对于Heap的介绍可以知道,一般对象和数组的创...原创 2020-02-07 17:14:56 · 178 阅读 · 0 评论 -
JVM学习之运行时数据区(方法区、堆、虚拟机栈、本地方法栈、程序计数器)
运行时数据区(程序运行时在jvm的一个状态;内存模型(JMM:分为metaspace和heap))重点为 方法区、堆、虚拟机栈左边是线程共享的(方法区、堆),右边是线程私有的(虚拟机栈、本地方法栈、计数器)线程私有的生命周期都比较短Method Area(方法区)方法区是各个线程共享的内存区域,在虚拟机启动时创建。用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的...原创 2020-02-05 14:59:01 · 481 阅读 · 0 评论 -
JVM学习之类加载机制、类装载器、双亲委派
编译过程Person.java -> 词法分析器 -> tokens流 -> 语法分析器 -> 语法树/抽象语法树 -> 语义分析器-> 注解抽象语法树 -> 字节码生成器 -> Person.class文件类加载机制 (类的生命周期)也就是class文件到虚拟机loading、linking、initalizing装载、链接、初始化...原创 2020-01-22 11:17:57 · 288 阅读 · 0 评论