Java跨平台的原理--摘自孙鑫

1998年12月,SUN公司发布了JDK1.2,于是有了java2。

J2SE:一般的JDK说的都是它

J2EE:企业

J2ME:手持设备的开发,手机、PDA等。例如小游戏

 

开发需要:JDK,帮助文档Documentation,指南Tourial

 

C++太复杂

Oak,Java的前身。

Java是简单的、面向对象的、健壮的、安全的、解释的、与平台无关的、多线程的、动态的

 

1、Java的跨平台是通过虚拟机JVM实现的

2、Java应用程序的开发周期包括:编辑,编译,下载,解释,执行


编译:源程序->字节码

字节码是JVM可执行的代码。将符号引用信息保留在字节码中,由解释器在运行过程中创建内存布局,然后通过查表来确定一个方法所在的地址。由此保证Java的可移植性和安全性。

 

解释:运行JVM字节码

解释执行过程分为三个步骤:代码的装入、代码的校验、代码的执行。

  1. 装入工作由“类装载器”class loader 完成,装载本程序运行所需要的一切类,包括继承的和调用的。(类之间通过引用命名空间进行通信和影响,本地类通过共享相同的名字空间获得较高的运行效率)当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。
  2. 校验器负责代码的检查,可发现操作数溢出,非法数据类型转换等多种错误。
  3. Java字节码哟两种执行方式:即时编译方式和解释执行方式。前者先将字节码编译成机器码,然后执行该机器码,后者每次解释并执行一小段代码。


3、Java和C++执行对比分析

Java源程序<--->C++源程序

编译           编译

字节码    <--->80X86机器码(二进制程序文件)

JVM虚拟机 <--->80X86计算机系统

Java解释器<--->80X86CPU

Java解释器:软件实现的“CPU”,特定平台下的一个应用程序。

Java解释器实际上就是特定的平台下的一个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。Java只能在已经实现了Java解释器程序的平台下运行。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值