初识Java
1. Java三大版本
- J2SE Java的标准版本 (Java2 Standard Edition) :
定位在客户端,主要用于桌面应用软件的编程。 - J2ME (Java2 Micro Edition):
主要应用于嵌入式系统开发,如手机和PDA的编程 。 - J2EE 企业版本(Java2 Enterprise Edition):
定义在服务器端Java2的企业版,主要用于分布式网络程序的开发,如电子商务网站 - 2005 JavaOne大会召开,Sun公司公开Java SE6:
Java的各种版本被更名,取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME
2. Java特点
• Java是跨平台的——字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。
• Java是简单的——不再有指针、多重继承、不再有#include 和#define 等预处理功能、不再有全局变量,取消自动类型转换,要求强制转换
• Java是安全的——取消了强大但又危险的指针、自动内存管理机制、公开密钥加密机制(PKC)。
• Java是完全面向对象的
• Java是健壮的——强制类型机制、异常处理、垃圾的自动收集、对指针的丢弃、安全检查机制。
3. Java跨平台原理
Java核心优势:跨平台
Java程序的跨平台主要是指:
- 字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。
Java运行过程
• Java程序的运行分为两步:先编译再解释执行
• 通过“编译器”将Java源程序编译成Java 字节码文件(.class)
• 通过不同的“虚拟机”将Java字节码文件解释为对应机器语言并执行
Java跨平台和C跨平台的区别
• Java:一次编译,到处运行 C:多次编译,到处运行
• 在互联网情况下,平台各异,Java的跨平台更具有优势
• Java可以跨所有平台吗?:要看有没有提供并安装相应的虚拟机
• Java的运行速度没有C语言快
• Java需要将class文件解释成机器码再执行;C直接执行机器码
字节码文件bytecode
• .class文件 二进制文件
• 格式中立、平台无关的二进制文件
• 是编译的产物,是解释的原料
Java虚拟机 JVM
• JVM是Java Virtual Machine(Java虚拟机)的缩写
• JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
• JVM就是一个虚拟的用于执行bytecodes字节码的计算机
• Java虚拟机是Java最核心技术,也是跨平台的基础。
• Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
• Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因
JDK、JRE、JVM的区别联系
• JDK: • Java Development Kit ——针对Java开发员的产品
• JRE: • Java Runtime Environment——是运行Java程序所必须的环境集合
• JVM • Java Virtual Machine——解释运行Java字节码文件,跨平台的核心
• 联系:JDK 包含JRE,JRE包含JVM。