WEB开发网
开发学院WEB开发Jsp JVM学习笔记之一 阅读

JVM学习笔记之一

 2008-01-05 18:17:11 来源:WEB开发网   
核心提示:什么是jvm,这个不需要再介绍了吧.假如连什么是jvm都不知道,那建议你翻翻书再看看吧.这里有个介绍:http://www.matrix.org.cn/article_view.asp?id=20因为最近有空一直都在研究jvm,所以便顺便写个jvm的心得,把自己在开发自己的jvm的过程中的想法和心得记录下拉,让后来者受


  什么是jvm,这个不需要再介绍了吧.假如连什么是jvm都不知道,那建议你翻翻书再看看吧.这里有个介绍:http://www.matrix.org.cn/article_view.asp?id=20因为最近有空一直都在研究jvm,所以便顺便写个jvm的心得,把自己在开发自己的jvm的过程中的想法和心得记录下拉,让后来者受益.由于实在是太忙,所以不会写的太勤快,不过我会尽力的,大家多多支持.
  
  首先,介绍几本必看的jvm的书给大家:
  1.sun的jvm规范,这个是正宗始祖了,不得不看,sun网站上就有.
  2.java virtual machine,jon meyer&troy downing写的,orielly出版.欧看的是电子版,书也有,不过电子版似乎也没有免费的,偶看的是交费的电子版,假如有免费电子版一定要告诉我,我懒得去找了:(
  3.inside java virtual machine.这个网上有几章是free的,作者说等两个星期把所 有的章节都放上来,可是我等了几个月了还没见其他的章节:(
  这三本书基本上是必看了吧,有没有中文翻译不知道,我看的都是英文的,欧觉得jvm的东东直接看英文会有点好处,究竟你Google的时候还知道用什么单词,^_^.
  
  jvm helloworld之前我们先看几个概念:
  
  1. jvm也有自己的指令集,指令集有和cpu类似的地方,比如可以与80x86比较:
  80x86的 move AX,10 等价于 jvm里的 bipush 10 把10压栈istore_1 把栈顶的数据取出存入变量1虽然有类似的地方,但是jvm里的指令集却要复杂很多,一共有一百多条(后面的笔记会具体介绍一下这些指令).
  
  2.jvm里,每个method有自己的Operand stack和相应的local variable,变量都是通过数字来识别的,从1开始. 对于所有non-static方法,第一个默认的local variable都是: this.
  
  3.一个典型的jvm的组成:
  execution engine:核心的执行引擎
  memory manager: 治理分配堆,内存.
  garbage collection: 垃圾收集
  error and exception manager: 负责处理例外.实际上,在jvm里,每个method都有一个对应的exception handler table.
  native method support:本地方法支持
  thread interface:线程接口,java是内在支持线程的
  classloader:类装载器
  security manager:安全治理
  大致由以上这些部分组成,对于其中每一个部分的实现,我们在后面都会学到.

Tags:JVM 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接