Java虚拟机Doc

Java虚拟机


学习计算机操作系统只是可以更好理解VM的知识

🔗操作系统 - Jaswine Doc


Java VM是寄宿在操作系统之上的一个虚拟机,拥有自己的指令和内存管理。这里是wikipedia中🔗Java虚拟机的词条。

我们写好代码后编译成class文件就可以在虚拟机上运行起来了,这里的代码不只是Java代码,可以是别的的代码,这是Java一开始创建时的愿景,JVMJava不强制绑定,并在🔗JSR中实现。所以有很多Java语言编写的代码经过编译成class文件后可以在JVM上运行。

JVM实现了自己的内存管理实现是按照🔗JSR-133:Java Memory Model实现的。关于Java内存模型更多的详细内容请查看Java内存模型

Java“一次编写,到处运行”的特性是由JVM提供。如果没有JVM这样的东西,对于每一套操作系统我们写的代码都是由区别,因为每一个操作系统底层的指令是有区别的。但是JVM帮我们屏蔽了不同操作系统而带来运行时候的差异。实现这样的特性要依赖中间桥梁一样的产物–class文件,🔗JSR202-Java Class File Specification中规范了class文件的文件格式。只要符合这个格式的class文件都可以在JVM上运行。关于class类信息看🔗类的那些事#类文件

Java是面向对象的语言,所有的功能都是由对象去完成,对象是类的一个实例,类变成对象需要完成一系列的操作,最先的操作就是加载类,关于加载的类的信息看🔗类的那些事#类加载

类通过一系列的操作生成了类的实例–对象,对象从出生到最后的消亡整个生命周期串联了虚拟机的方方面面,从加载类到实例化成对象,分配对象到内存上,到对象调用,到最后对象死亡被GC回收。看🔗类的那些事#对象及其生命周期

JVM作为工程品,给使用人员提供了非常大的操作限度,在启动JVM的时候可以加上相关的参数来调整来适应具体的APP常用JVM参数

在出现错误或者程序运行没有达到预期的时候可以通过一系列的工具来找到程序的瓶颈在什么地方。详细看JVM工具