JVM 初探

1.线上用Dubbo开发的一个系统突然卡死了,JVM FullGC太频繁,求救

2.生产环境部署的一个系统隔几天就莫名其妙的进程崩溃,看了眼异常信息,说是OOM内存溢出,如何解决?在线等,急!

3.出去面试,光是说一些JVM内存模型、垃圾回收算法,不够啊!面试官怎么老是盯着我问生产环境遇到的JVM问题,各种参数的优化之类的,完全没经历过

.java源代码

写好的代码编译成.class后缀的字节码文件。对于编译好的这些.class字节码, 我们使用诸如 java -jar 之类的命令来运行

一旦你采用java命令,实际上此时就会启动一个JVM进程。

这个JVM就会来负责运行这些.class字节码文件,也就相当于是负责运行我们写好的系统

所以平时我们写好的某个系统在一台机器上部署的时候,你一旦启动这个系统,其实就是启动了一个JVM,由它来负责运行这台

机器上运行的这个系统

JVM要运行这些.class字节码文件中的代码,首先就得把这些.class文件中包含的各种类给加载进来。

此时就会有一个类加载器的概念

此时会采用类加载器把编译好的那些.class字节码文件给加载到JVM中,然后供后续代码运行来使用

最后一步,JVM就会基于自己的 字节码执行引擎,来执行加载到内存里的我们写好的那些类了

posted @ 2021-05-19 10:30  imtm  阅读(27)  评论(0)    收藏  举报