美文网首页
JavaWeb系列读书笔记(五)

JavaWeb系列读书笔记(五)

作者: shaclow | 来源:发表于2018-07-26 19:00 被阅读0次

JVM体系结构

JVM叫做Java虚拟机,它模拟一个计算机所具有的功能。在计算机中模拟一个计算机,是不是叫机中机?:)
计算机的体系结构有下面几个部分
1.指令集
2.计算单元
3.寻址方式
4.寄存器
5.存储单元

指令集

就是在CPU中用来计算和控制计算机系统的一套指令的集合,这是影响CPU性能的一个因素。有精简指令集和复杂指令集两个大类,我们桌面操作系统基本是复杂指令集
指令集是可以被机器直接识别的机器码,所以必须以二进制存储在计算机中
指令集和CPU架构息息相关,但往往不同厂商的CPU指令集会兼容。

JVM和实体机的不同点
  • JVM是一个抽象的规范,不同的厂商根据该规范用软件或软硬结合的方式在相同或不同的平台上的具体实现
  • 当运行一个Java程序时,它就是一个运行中的实例,每一个运行中的Java程序都是一个JVM实例
  • JVM也有一套合适的指令集,该指令集叫JVM字节码指令集
  • 符合class文件规范的字节码都可以被JVM执行
JVM体系结构
  • 类加载器 将class加载到JVM中
  • 执行引擎 执行代码
  • 内存区 将内存划分多个区,模拟计算机存储记录调度等模块
  • 本地方法调用
一些补充

1.每个加载的类都有一个java.lang.Class的实例来表示该类型,要求这些实例要放在Java堆中

2.执行引擎,有基于栈(SUN的hotspot)的也有基于寄存器的。前者注重可移植性,后者注重效率

3.Java的一个进程可以有多个同时执行的流程,而执行一个流程就是执行引擎的任务,这些流程使用线程来实现,而每个Java线程就是一个执行引擎的实例,所以一个JVM会有多个执行引擎操作。比如Java垃圾回收什么的

4.Java内存管理,分为方法区,Java堆,Java栈,PC寄存器(指示下一条执行的命令)和本地方法区。Java栈和PC寄存器都是执行引擎时临时创建的,而其他是所有线程共享的。当然一个执行引擎可能会出现多个栈帧。然后PC寄存器的指向命令也会出现变化。这种情况出现在调用函数的情况当中,调用本地方法也能有相同效果。

5.JIT技术:是将JVM执行字节码时经常用的方法进行优化,并将其编译成本地代码。

相关文章

网友评论

      本文标题:JavaWeb系列读书笔记(五)

      本文链接:https://www.haomeiwen.com/subject/ezsbmftx.html