第一部分:
作用:
1.完成对硬件平台的兼容,一次编写,到处运行。 如何实现的?为什么其它语言做不到?
2.内存等资源的管理。 c为什么需要在代码里嵌入对内存的管理? java内存管理机制?
3.热点代码检测,运行时编译及优化,这使得java应用能随着运行时间的增加而获得更高的性能。
缺点:
1.提升硬件无法等比例提升程序的运作性能和并发能力。
原因:为了给所有的硬件提供统一的虚拟平台,牺牲了一些与硬件相关的性能特性。
学习jvm的原因:
1.虽然java开发人员不需要关注对硬件的兼容和内存的管理,但是开发人员不了解虚拟机的运行原理,就无法写出最适合jvm的代码。
sun官方定义的java技术体系:
1.java程序设计语言
2.各种硬件平台的java虚拟机
3.java api类库
以上3点称为jdk
4.class文件格式
5.来自商业社区和开源社区的第三方java类库
jvm功能点:
类加载器
字节码验证器
垃圾收集器
解释器
编译器
线程调度
第二部分:自动内存管理机制
第2章:java内存区域与内存溢出异常