Matrix Java 大讲坛之 JVM移植研究
来源:网络 更新时间:2014-12-16
山鬼的情人 19:45:42
我是山鬼的情人,大家好
杨树 19:45:51
等了好久算是等到山鬼讲课了
山鬼的情人 19:46:00
先自我介绍一下,我是XXXXX公司工程师
山鬼的情人 19:46:19
(公司有规定,不准借公司名号招摇撞骗)
郁也风 19:46:29
原来这就是传说中XXX啊
杨树 19:46:30
那我帮你说?哈哈
头发乱了~~ 19:46:39
主要方向是啥?能说说吧?
char 19:46:49
5星级的公司。
山鬼的情人 19:46:54
今天很高兴有机会和大家讨论一下jvm和jvm移植方面的问题
农民 - Javen 19:58:59
热烈欢迎!
char 19:47:22
我忘记拿jvm那本书到公司来。
山鬼的情人 19:47:55
java是个很了不起的发明,最初的想法是用在数字家电上
山鬼的情人 19:48:17
数字家电上面的硬件差异很大,软件移植很麻烦
山鬼的情人 19:48:46
于是,sun的牛人就想到了用vm来屏蔽硬件的差异
山鬼的情人 19:49:17
jvm的核心是这样一个循环
农民 - Javen 20:01:09
我爱 Java
山鬼的情人 19:49:55
!stop {
;
instruction ;
}
山鬼的情人 19:50:36
这段伪语言说明了jvm的简单的执行过程,即取指令,执行指令
山鬼的情人 19:50:46
jvm核心可以被看作一个软cpu
山鬼的情人 19:51:54
的时候,要根据具体指令完成不同的操作
山鬼的情人 19:52:29
一般来讲,cpu都有若干通用寄存器,
山鬼的情人 19:53:04
sun再定义jvm的时候,为了保证通用性,定义了基于stack的jvm,也就是说,jvm实际上没有寄存器
山鬼的情人 19:53:31
指令所需的操作数,都是保存在stack中,
山鬼的情人 19:54:00
上面讲的是jvm的执行引擎方面的细节
杨树 19:54:42
一会儿有对这部分提问的时间吗?
山鬼的情人 19:54:43
除了执行引擎,jvm还有class loader, gc模块等一些主要模块
山鬼的情人 19:54:52
随时提问
杨树 19:55:11
还是寄存器的问题
山鬼的情人 19:55:15
?
杨树 19:55:48
thinking in java里面提到java中的数据存储在5个部分中
Spring 19:56:19
java是不是抢掉了一段内存用于自己。
杨树 19:56:45
堆,栈,常量池,静态池,还有就是寄存器
杨树 19:57:13
这个寄存器是指真实的寄存器还是虚拟出来的?
Spring 19:57:26
它是在调用java虚拟机的时候启用的吗?