今天来分享一下我对JVM优化这一方面的经验总结;
JVM是我们作为java开发人员必不可少的一个东西也是java代码运行的虚拟机,我们在使用他的时候也可以对他进行优化提高性能;
引入JVM虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用JVM虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在JVM虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行,这也是java实现可以跨平台的原因

1、jvm、jre、jdk三者的关系

首先在介绍jvm之前先来谈谈java其他俩个必不可少的东西和jvm的关系

首先是JDK

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。

然后我们来看JRE

JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)

最后JVM也一目了然了

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的

Java怎么线上jvm调优 java jvm优化_jvm


由上图一目了然:

JDK是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序。

JVM体系结构与运行原理:

Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行

Java怎么线上jvm调优 java jvm优化_jdk_02


2、为什么要对jvm进行优化

在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们
可能将有下面的需求:
1、运行的应用“卡住了”,日志不输出,程序没有反应
2、服务器的CPU负载突然升高
3、在多线程应用下,如何分配线程的数量