JVM虚拟机介绍:
Sun HotSpot VM
这个目前看起来“血统纯正”的虚拟机在最初并非由Sun公司开发,而是由一-家名为"Longview Technologies"的小公司设计的:甚至这个虚拟机最初并非是为Java语言而开发的,它来源于Strongtalk VM,而这款虚拟机中相当多的技术又是来源于一款支持Self语言实现“达到C语言50%以上的执行效率”的目标而设计的虚拟机,Sun公司注意到了这款虚拟机在JIT编译上有许多优秀的理念和实际效果,在1997年收购了Longview Technologies公司, 从而获得了HotSpot VM。
BEA JRockit VM
JRockit VM曾经号称“世界上速度最快的JAVA 虚拟机”它是BEA公司在2002年从Appeal Virtual Machines 公司收购的虚拟机。BEA公司将其发展为一款专 门为服务器硬件和服务器端应用场景高度优化的虚拟机,由于专注于服务器端应用,它可以不太关注程序启动速度,因此JRockit 内部不包含解析器实现,全部代码都靠即时编译器译后执行。除此之外,JRockit的垃圾收集器和Mi ssionControl服务套件等部分的实现,在众多JAVA 虚拟机中也一-直处于 领先水平。
IBM J9 VM
IBM J9 VM并不是IBM公司唯一的JAVA虚拟机,不过是目前其主力发展的JAVA 虚拟机。IBM J9 VM原本是内部开发代号,正式名称是“IBM Technology for Java Virtual Machine” ,它最早是由IBM Ottawa实验室一个SmallTalk的虚拟机扩展来的。那时候,这个虚拟机有一个bug是因为8K值定义错误引起,工程师们花了很长时间终于发现并解决了这个错误,此后这个版本的虚拟机就被称为K8了。于是,后来出现的支持Java 这个版本的虚拟机就被称为J9了。J9市场定位与HotSpot 比较接近,从服务器到桌面应用再到嵌入式都全面考虑的多用途虚拟机。
虚拟机速度决定因素: 编译效率,垃圾收集器算法,虚拟机内部结构
JVM运行时数据区结构
Java虛拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都各司其职