首页 > 郑州JAVA培训/ 正文
郑州北大青鸟翔天信鸽专业老师告诉你学习JAVA培训首先要学习什么
Java的跨平台是通过Java虚拟机(JVM)来实现的。
Java源文件的编译过程
Java应用程序的开发周期包括编译、下载、解释和执行几个部分。Java编译程序将Java源程序翻译为JVM可执行代码—字节码。这一编译过程同C/C++的编译有些不同。当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而产生的。因此,在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由解释器在运行过程中创建内存布局,然后再通过查表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全性。
Java解释器的执行过程
运行JVM字节码的工作是由解释器来完成的。解释执行过程分三步进行:代码的装入、代码的校验和代码的执行。装入代码的工作由“类装载器”(class loader)完成。类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。当类装载器装入一个类时,该类被放在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其它类。在本台计算机上的所有类都在同一地址空间内,而所有从外部引进的类,都有一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。
随后,被装入的代码由字节码校验器进行检查。校验器可发现操作数栈溢出,非法数据类型转换等多种错误。通过校验后,代码便开始执行了。
Java字节码的两种执行方式
1、即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。
2、解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程 序的所有操作。
通常采用的是第二种方法。由于JVM规格描述具有足够的灵活性,这使得将字节码翻译为机器代码的工作具有较高的效率。对于那些对运行速度要求较高的应用程序,解释器可将Java字节码即时编译为机器码,从而很好地保证了Java代码的可移植性和高性能。
JVM规格描述
JVM的设计目标是提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提供很好的灵活性,同时也确保Java代码可在符合该规范的任何系统上运行。JVM对其实现的某些方面给出了具体的定义,特别是对Java可执行代码,即字节码(Bytecode)的格式给出了明确的规格。这一规格包括操作码和操作数的语法和数值、标识符的数值表示方式、以及Java类文件中的Java对象、常量缓冲池在JVM的存储映象。这些定义为JVM解释器开发人员提供了所需的信息和开发环境。Java的设计者希望给开发人员以随心所欲使用Java的自由。
JVM是为Java字节码定义的一种独立于具体平台的规格描述,是Java平台独立性的基础。
Java程序执行与C/C++程序执行的对比分析
如果把Java源程序想象成我们的C++源程序,Java源程序编译后生成的字节码就相当于C++源程序编译后的80x86的机器码(二进制程序文件),JVM虚拟机相当于80x86计算机系统,Java解释器相当于80x86CPU。在80x86CPU上运行的是机器码,在Java解释器上运行的是Java字节码。
Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平台下的一个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。当前,并不是在所有的平台下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。
- 上一篇:怎么学习JAVA好找工作
- 下一篇:该怎样去学习编程技术
更多河南计算机专业大专学校哪家好,河南技校都有哪些专业,郑州计算机中专技术学校有哪些,河南省的初高中生毕业2019年学什么技术,河南北大青鸟翔天信鸽招生网,去郑州北大青鸟学it怎么样相关文章
- java可以通过什么方法读取外部资源
- 培训过JAVA技术以后能找什么工作
- 现在最热门最有“钱途”的技术是什么?
- 想学习java,那么java好学吗?
- 郑州软件培训学校哪个好
- 郑州JAVA培训以后工作工资高吗
- 什么时候开始学java技术好
- 短期内掌握JAVA技能可以吗
- 有人在郑州北大青鸟学java的吗
- 现在学JAVA与PHP哪个就业好些呢?
- 现在的java程序员就业情况怎么样?
- 怎么才能学会编程技术呢?
- 学习java累吗,来看看一个java老师的自白!
- 高中毕业学什么技术拿高薪当白领呢?
- 给想学程序开发的人员推荐几本课外读物?
- 郑州大学生java培训学校哪家好呢?
- 软件培训网告诉你:怎样写出无法维护的代码?
- 郑州电脑学校在读学员给你聊聊学习感受
- 郑州北大青鸟哪些课程专业适合大学生创业?
- 郑州java培训:从校园到职场——转角遇到变化
- 郑州想学游戏开发编程去哪个学校好呢
- 一个只有Java基础的人怎么开发一个类似于手机端的app
- 郑州java软件短期培训学校哪家好
- 郑州北大青鸟学校都有哪些专业呢
- 郑州课工场大学生培训机构怎么样,有哪些课程
- 郑州有哪些职业技术学校
- 河南郑州技校排名
- 郑州北大青鸟java培训学校好不好
- 郑州Java编程开发培训哪家好
- 搜索
-
- 热门标签