jvm虚拟机-走进java

时间:2022-12-26 21:57:55

1、java是一门结构严谨、面向对象的编程语言;摆脱了硬件平台的约束,实现了“一次编写,到处运行”的理想;它提供了相对安全的访问机制,避免了绝大部分的内存泄漏和指针越界问题;它实现了热点代码检测和运行时编译以及优化,这使得java应用能随着运行时间的增加而获得较高的性能;它有一套完善的应用程序的接口,还有无数来自商业机构和开源社区的第三方类库来帮助它实现各种各样的功能......

 

2、JDKjava程序开发的最小环境,包含java程序设计语言,java虚拟机,java API类库,JREjava程序运行的标准环境,包括java API类库中的java se API子集和虚拟机这两部分。

 

3HotSpot VM的优点:

准确式内存管理:虚拟机可以知道内存中的某个位置的数据具体是什么类型。比如内存中有一个32位的整数123456,它到底是一个reference指向123456的内存地址还是一个数值为123456的整数,虚拟机将有能分辨出来,这样能在GC的时候准确判断堆上的数据是否还可以被使用。由于使用了准确的内存管理,就可以抛弃以前Classic VM基于handler的对象查找方式{原因是进行GC后对象可能会被移动位置,如果将地址为123456的对象移动到654321,在没有明确信息表明内存中那些数据是reference的前提下,虚拟机是不敢吧内存中所有为123456的值改为654321的所以要使用句柄来保持reference值的稳定},这样每次定位对象都少了一次间接查找的开销,提升执行的性能。

热点代码探测技术:HotSpot VM的热点代码探测能力可以通过执行计数器找出最具有编译价值的代码,然后通过JIT编译器以方法为单位进行编译。如果一个方法被频繁调用,或方法中有效循环次数很多,将分别触发标准编译和OSR(栈上替换)编译动作。通过编译器与解释器恰当地协同工作,可以在最优化的程序相应时间与最佳执行性能中取得平衡,而且无需等待本地代码输出才能执行程序,即时编译的时间压力也相对减小,这样有助于引入更多的代码优化技术,输出质量更高的本地代码。