Java学习笔记(虚拟机1)

1、虚拟机有多种,遵守Java虚拟机规范,如HotSpot, JRockit, J9

2、虚拟机运行字节码,对于热点代码缓存为机器指令,提高运行速度

3、不同操作系统运行不同的虚拟机,建立一个桥,以实现跨平台功能

4、不同的语言只要按照字节码规范编译为虚拟机字节码,都可以执行,如JRuby、Groovy等

5、自动内存管理,多种垃圾收集器(GC),Serial、CMS,对应不同内存区域

6、虚拟机查看管理工具若干,图形化的有JConsole,而Visual VM在JDK9中已经不存在了

7、虚拟机栈(Stack)是按线程区分的

8、GC时需要让线程跑到安全点或安全区域,以防止内存整理时的并发,分析工具可查看是否触发全局停运(Stop-The-World)

9、并行或串行GC各有利弊,可根据生产环境设定合理的参数(时间、空间优先)

10、Stack是栈,Heap是堆,还有Direct堆,用于DirectBuffer等,Direct堆由Full GC管理,或者手动clean

----刚学到这里

猜你喜欢

转载自mashijie.iteye.com/blog/2399443