jvm是java语言实现平台无关性的主要前提。jvm位于操作系统之上。
java程序启动的时候就会产生一个jvm实例。
编写的代码(.java)在java编译器的作用下编译生成java字节码(.class)文件,然后通过本地或者网络,被装载器装载到jvm虚拟机;jvm中包含java解释器解析.class文件;jvm的执行引擎会在操作系统上执行。
jvm的内部构造,包含方法区、java堆、java栈、程序计数器pc、本地方法栈;
栈是由线程控制,在线程创建的时候创建,生命周期和线程相同,线程结束的时候,栈内存就会释放。数据以栈帧(一个内存区块,一个数据集)的形式存在。以后进先出的规则来排序栈帧。
堆是一块共享的内存空间,jvm实例产生的时候,就会产生一个堆内存空间,一个jvm实例只包含一个堆内存空间,大小是可以调节的;主要存放一些类、方法、常变量、对象。
pc:程序计数器,里面主要存放的是指令,控制执行引擎的操作。
jvm中还有很多知识。