第一章,java的开发运行环境

1.1 java运行原理与java虚拟机

1.1.1 java运行原理简述 

java源程序 (编译)➽java字节码文件[.class]  (解释)➽java虚拟机(JVM) ➽{Linux、Windows、Mac、其他操作系统}
                                         (JAVA运行原理图)
java与其他传统的解释性语言的区别:
       传统的解释性语言如BASIC在解释执行的时候,是直接将源程序一条一条地通过解释器进行词法分析、语法分析等最终翻译为本地的及其指令,并在CPU上执行。而Java的解释过程是先通过Java虚拟机读取Java字节码文件,java字节码是一套用来在java系统下运行时执行的高度优化的指令集,执行该指令集的系统是Java的虚拟机,通过Java虚拟机执行字节码并将其转换成和本地系统硬件相关的本地指令集,并最终在CPU上执行。
这种特殊的编译和解释过程,才使得Java语言具有了与平台无关性,也正是Java的特色所在。

1.1.2 java虚拟机

JVM分6个功能模块:JVM解释器、指令系统、寄存器、栈、存储区和碎片回收区。
JVM解释器:JVM解释器负责将字节码转换成为CPU能执行的机器指令。
指令系统:指令系统同硬件计算机很相似。一条指令分成操作码和操作数两部分。
 操作码为8位二进制数,操作数可以根据需要而定。操作码是为了说明一条指令的功能,所以JVM可以有多达256种不同的操作指令。
寄存器:JVM有自己的虚拟寄存器,这样就可以快速地和JVM的解释器进行数据交换。为了实现必须的功能,JVM设置了4个常用的32位寄存器:pc(程序计数器)、optop(操作数栈顶指针)、frame(当前执行环境指针)和vars(指向当前执行环境中第一个局部变量的指针)。
栈:JVM栈是指令执行时数据和信息存储的场所和控制中心,它提供给JVM解释器运算时所需要的信息。
存储区:JVM存储区用于存储编译后的字节码等信息。
碎片回收区:JVM碎片回收,是指将那些使用后的Java类的具体实例从内存中进行回收。因此,可以避免开发人员自己编程控制内存的麻烦。随着JVM的不断升级,其碎片回收技术和算法也更加合理。比较经典的算法有引用计数、复制、标记-整理。在JVM1.4.1版以后,产生了一种代收集技术。简单的说,就是利用对象在程序中生产的时间划分成代,以这个代为标准进行碎片回收。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值