Java能进行进行跨平台运行主要是源于JVM(Java Virtual
Machine,Java虚拟机),是通过JVM实现了特定平台下的Java解释器,Java字节码就可以通过解释器在该平台下执行,这就是Java跨平台的根本。

1、Java源文件的编译过程
Java应用程序的开发周期包括编译、下载、解释和执行几个部分。Java编译器将Java源程序翻译为JVM可执行的代码—字节码。这一编译过程与C/C++的编译有些不同,C/C++编译器生成的代码是针对某一硬件平台的代码。
因此,在编译过程中,编译器通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序的正确运行。
而Java编译器则不会把对变量和方法的引用编译为数值引用,也不确定程序运行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由解释器在运行时去创建内存布局,然后再通过查表来确定一个方法所在的地址,这样就有效地保证了Java的可移植性和安全性。
2、Java解释器运行机制
运行字节码的工作是由解释器来完成的。解释执行过程分为三步:代码装入、代码校验、代码执行。
代码装入的工作由类加载器(Class
Loader)来完成。类加载器负责加载运行程序所需要的所有代码。当类加载器加载一个类之后,类被放在自己的名字空间中,除了通过符号引用自己名字空间以外的类,类与类之间没有其他办法可以相互影响。
当加载了运行程序所需要的所有类之后,解释器便可以确定整个可执行程序的内存布局,并为符号引用同特定地址空间建立对应关系查询表。
通过在这一阶段确定代码的内存布局,Java很好地解决了由于基类改变而导致子类崩溃的问题,同时也防止了代码对地址的非法访问。
当代码被装入之后,字节码校验器开始对字节码进行检查。校验器可以发现操作数栈的溢出和非法数据类型转换等多种错误。在校验通过后,Java代码便开始执行了。
3、Java字节码的执行方式
Java在执行字节码时有两种方式:即时编译方式和解释执行方式。即时编译方式(JITJust In
Time)先将字节码编译成机器码,再执行机器码。这种运行方式的优点是执行经过二次编译后的机器码可以提高程序的执行速度。
解释执行方式是解释器通过每次解释,并执行一小段代码来完成Java字节码程序的所有操作。比如,若Java字节码要对两个数值进行加法操作,则解释器调用自身的一段代码来完成加法操作。
达内教育优势主要有一下几点:1、专注职业教育,挖掘互联网26大就业方向;
2、开设26大课程体系,助推学员更好发展;
3、多种班型,职场深造选择灵活;
4、实战中走出来的讲师满满都是干货;
5、舒适的教学环境,营造良好的学习氛围。
如果你想要掌握一项热门技术,欢迎来达内教育咨询,这里有超多课程供大家选择哦
中国IT职业教育领军企业 达内时代科技集团有限公司(简称达内教育),美股交易代码:TEDU,成立于2002年。 2014年4月3日成功在美国上市,融资1亿3千万美元。成为中国赴美国上市的职业教育公司,也是引领行业的职业教育公司。 达内致力于面向IT互联网行业,培养软件开发工程师、测试工程师、系统管理员、智能硬件工程师、UI设计师、网络营销工程师、会计等职场人才。2015年起,推出面向青少年的少儿编程、智能机器人编程、编程数学等K12课程。 达内的使命:缔造年轻人的中国梦、缔造达内员工的中国梦 达内的愿景:做管理-的教育公司 开设课程 达内时代科技集团成人类课程方向:Java企业级应用软件工程师、Java互联网架构软件工程师、Java大数据工程师、Web前端开发工程师、网络运维与网络安全、Linux云计算工程师、Python 人工智能软件工程师、-嵌入式软件工程师、C++-软件工程师、PHP/web.3.0互联网工程师、-软件测试工程师、Android软件工程师、IOS软件工程师、.NET软件工程师、全链路UI设计师、商业插画、商业视觉设计课程、产品级UED交互设计师、全栈式CAD设计师、产品经理、VR开发工程师、VR次世代模型师、-网络营销师、新电商运营官、企业级影视视效、人力资源经理人课程、总账会计课程

江苏省






















