JVM (一) 初步认识

JVM (一) 初步认识
一、基础知识
1. Java吹的最精确的牛逼Write Once,Run Anywhere。全靠不同OS上的不同的JVM实现,JVM对应处理的是 .class 文件即jar包。
2. JDK,JRE,JVM结构关系
在这里插入图片描述
3.Hello.java程序的流程
在这里插入图片描述
二、初次体验 [软件版本idea 3.5 JDK 1.8]
1. 写一个Demo程序,体验dump内存快照和用就console动态查看。在idea安装目录下的bin\目录下有个idea64.exe.vmoptions文件里面默认的配置了一下这个jvm 。

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

这里堆内存最大值750M和最小值128M。
测试代码

   while (true) {
            list.add(new JvmDemo01());
        }

方法一:dump内存快照
配置VM options: 发生内存溢出是打印内存快照
在这里插入图片描述

可以通过任务管理器查看内存的变化
在这里插入图片描述
当发生outofmemory 它会打印快照文件
在这里插入图片描述
可以用图形化分析工具对.hprof进行查看分析,找出问题原因。
方法二:用jconsole实时查看
在这里插入图片描述
在这里插入图片描述
三、虚拟机种类的了解
Sun classic VM 第一款
Exact VM 存活周期短
HotSpot VM 称霸武林
KVM (kilobyte) 手机,嵌入式 已经不用
JRockit
J9
dalvk 安卓平台
Microsoft JVM
Azul VM Liquid VM 高性能,不需要OS
taobao VM 根据HotSpot 和自身硬件深度定制的

猜你喜欢

转载自blog.csdn.net/weixin_40160053/article/details/82837315