前言:学习java之初,从第一次敲出helloworld的兴奋,到后面的用servlet+jsp写了一个管理系统的自豪到后面学习了各种框架慢慢察觉到自己的不足;之前只是想着写一些业务,调用一些Api,到现在的慢慢想要深入的了解java的底层到底是怎么运行的,底层原理是什么,现在的自己还是很菜,没有说这次学习就一定要吃透底层,这次学习只能说是一次扫盲,了解到底层的一个大概框架,我会把每天的学习记录到博客当中,方便自己的复习,有朋友看到了我的博客觉得有问题也可以给我留言,路还很长,加油!
一.虚拟机与java虚拟机
java:一门跨平台的语言,可以再不同的平台上运行
虚拟机:跨语言的平台,所谓虚拟机可以称为一台虚拟计算机,用来执行一系列虚拟计算机指令,主要可以分为系统虚拟机和程序虚拟机。
系统虚拟机:VisualBox,Vmware都属于系统虚拟机,可以理解为是对物理计算机的仿真,提供了一个可运行完整操作系统的软件平台。
软件虚拟机:Java虚拟机,专门为执行单个计算机程序设计,Java虚拟机中执行的指令称为java字节码指令,支持多种语言混合编程。
JVM具体位置:运行与操作系统之上,没有与硬件直接交互
二.JVM的整体结构
三.JVM的生命周期
四.目前比较火的几种JVM
HotSport: 目前JDK中都是使用它,从服务器、桌面到移动端、嵌入式都有应用。
1.通过计数器找到最具编译价值代码,触发即时编译或栈上替换
2.通过编译器与解释器协同工作,在最优化的程序响应时间与最佳执行性能中取得平衡
JRockit: 专注于服务器端,是目前最快的JVM,所以它可以不太关注程序启动速度,因此JRockit内部不包含解析器实现,全部代码都靠即时编译器编译后执行。[
优势:全面的Java运行时解决方案组合
1.JRockit面向延迟敏感型应用的解决方案JRockit Real Time提供以毫秒或微秒级的JVM响应时间,适合财
务、军事指挥、电信网络的需要。
2.MissionControl服务套件,它是一组以极低的开销来监控、管理和分析生产环境中的应用程序的工具。