什么是JVM?它存在什么地方?
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
对于我们Java程序员,说白了就是:
- JVM本质上是一个程序, 它能识别.class 字节码文件(里面存放的是我们对.java编译后产生的二进制代码),并且能够解析它的指令,最终调用操作系统上的函数,完成我们想要的操作!
- 关于Java语言的跨平台性,就是因为JVM,我们可以将其想象为一个抽象层,只要这个抽象层JVM正确执行了.class文件,就能运行在各种操作系统之上了!这就是一次编译,多次运行
对于JVM的位置: JVM是运行在操作系统之上的,它与硬件没有直接的交互
JDK、JRE、JVM的关系
JDK(Java Development Kit):Java开发工具包(Java开发环境)
JRE(Java Runtime Environment):Java运行环境
JDK = JRE + javac/java/jar 等指令工具
JRE = JVM + Java基本类库
3、JVM体系结构
Java虚拟机主要分为五大模块:
- 类装载器子系统
- 运行时数据区
- 执行引擎
- 本地方法接口
- 垃圾收集模块
- 方法区是一种特殊的堆
- 栈里面不会有垃圾,用完就弹出了(调用方法将在栈中开辟内存,称为入栈,方法调用完成,栈内存立即释放,称出栈(弹栈)),否则阻塞了main方法
- 垃圾几乎都在堆里,所以JVM性能调优%99都针对于堆
来源:oschina
链接:https://my.oschina.net/u/4234912/blog/4520831