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字节码
解释执行过程分为三个步骤:代码的装入、代码的校验、代码的执行。
- 装入工作由“类装载器”class loader 完成,装载本程序运行所需要的一切类,包括继承的和调用的。(类之间通过引用命名空间进行通信和影响,本地类通过共享相同的名字空间获得较高的运行效率)当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。
- 校验器负责代码的检查,可发现操作数溢出,非法数据类型转换等多种错误。
- Java字节码哟两种执行方式:即时编译方式和解释执行方式。前者先将字节码编译成机器码,然后执行该机器码,后者每次解释并执行一小段代码。
3、Java和C++执行对比分析
Java源程序<--->C++源程序
编译 编译
字节码 <--->80X86机器码(二进制程序文件)
JVM虚拟机 <--->80X86计算机系统
Java解释器<--->80X86CPU
Java解释器:软件实现的“CPU”,特定平台下的一个应用程序。
Java解释器实际上就是特定的平台下的一个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。Java只能在已经实现了Java解释器程序的平台下运行。