什么是JVM
定义:
- Java Virtual Machine - java 程序的运行环境
JVM内存结构
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c62065dc5a3cc1fef1dbe6ea177bf932.png)
好处:
- 一次编写,到处执行(跨平台)
- 拥有自动内存管理机制,垃圾回收机制
- 数组下表越界检查(C++数组越界,会导致覆盖其他内存)
- 多态
JDK、JRE、JVM比较:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dec7e1f3c7bbef79ca3306d323ace906.png)
常见的JVM
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5de29da58d7f678d92dabac960513fc5.png)
我们为什么要对jvm做优化?
在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们可能将有下面的需求:
- 运行的应用“卡住了”,日志不输出,程序没有反应
- 服务器的CPU负载突然升高
- 在多线程应用下,如何分配线程的数量?