JAVA的解释执行
来源:互联网 发布:微信抓取朋友圈数据库 编辑:程序博客网 时间:2024/05/18 02:55
Java一开始被定位为“解释执行”的语言,但是现在主流的虚拟机中都包含了即时编译器,Class文件中的代码到底会被解释执行还是编译执行,只有虚拟机自己才能判断。
Java语言中,Javac编译器完成了程序代码经过词性分析、语法分析到抽象语法树,再遍历语法树生成线性的字节码指令流的过程。因为这一部分动作是在Java虚拟机之外进行的,而解释器在虚拟机的内部,所以Java程序的编译就是半独立的实现。
Java编译器输出的指令流,基本上是一种基于栈的指令集架构(Instruction Set Architecture,ISA),与之相对的是基于寄存器的指令集架构,其特点如下:
- 基于栈的指令集架构主要优点是可移植,代码相对紧凑、编译器实现更简单等;寄存器由硬件直接提供,程序直接依赖这些硬件寄存器就不可避免的受到硬件的约束。其缺点主要是执行速度相对来说慢一些,所有主流物理机都采用寄存器的指令集架构也说明了这一点。
- 基于寄存器的指令集速度更快,而且指令数量更少,且比栈实现少了许多内存访问。
阅读全文
0 0
- JAVA的解释执行
- Java的解释执行是先全部解释完后再执行还是边解释边执行?
- 关于Java的源程序、编译、解释、执行
- JAVA语言中编译执行和解释执行的区别?
- Java字节码---解释执行
- java是不是"解释执行"语言
- 用Jython实现解释执行的Java类
- Java源文件的编译、下载、解释和执行
- Java源文件的编译、下载、解释和执行
- JAVA结合了编译和解释执行的优点
- Java虚拟机解释执行和JIT的关系
- Java源文件的编译、下载、解释和执行
- java实现C语言解释器:无参数传递的函数调用的解释和执行
- java实现C语言解释器:while 和 do while 循环的解释和执行
- java开发C语言解释器:间套结构体的解释和执行
- Java的虚拟机一般是解释执行的,而CLR是编译执行
- 编译执行和解释执行的区别
- 编译执行和解释执行的区别
- 洛谷 P1070 Vijos 1815 [NOIP 2009]道路游戏
- HTML超链接
- 智能指针(还缺少scoped_ptr的模拟实现)
- Map集合根据key排序
- thread24
- JAVA的解释执行
- JavaScript面向对象(2)——函数与闭包(函数、对象、闭包)
- PostreSQL崩溃试验全记录
- IIS 之 在IIS7、IIS7.5中应用程序池最优配置方案
- LeetCode ——566. Reshape the Matrix
- thread25
- sort函数的用法(C++排序库函数的调用)
- 微信公众平台网页开发实战--1.微信分享一个网页到朋友圈
- LD 链接 文件 *.o文件 与*.so文件 的区别