编译器 解释器
Java源程序 Java源程序 (.java)
字节码文件 (.class)
计算机执行 的代码 机器码) (机器码)
所谓的机器码就是指真正令CPU 运行的程序代码。 所谓的机器码就是指真正令CPU 运行的程序代码。 机器码就是指真正令 也称为本地码 也称为本地码
C/C++语言编译过程:
编译器 执行 C源程序 (.c) 计算机执行 的代码(机器码) 的代码(机器码) 扩展名为exe exe) (扩展名为exe)
1.3: Java编译器和Java虚拟机 ? 什么是Java虚拟机?
–Java虚拟机是一个想象中的机器,用来运行Java Java虚拟机是一个想象中的机器,用来运行Java Java虚拟机是一个想象中的机器 程序。 程序。 –Java解释器即为Java虚拟机。经过Java解释器的 Java解释器即为Java虚拟机 Java解释器的 Java解释器即为Java虚拟机。经过Java 解释,才能得到具体的并可执行的代码, 解释,才能得到具体的并可执行的代码,即机器 码文件。 码文件。
由Java程序编译解 释的过程,我们可 以看出Java的最突 出的特点:
Java源程序 Java源程序 编译器
虚拟机
字节码文件.class 字节码文件.class
平台无关性
JVM JVM JVM Windows 操作环境 Unix 操作环境 Mac 操作环境
Java与C/C++的比较 Java与C/C++的比较
跨平台: 跨平台:
– C/C++语言编译为机器码;Java语言编译为字节码, C/C++语言编译为机器码;Java语言编译为字节码, 语言编译为机器码 语言编译为字节码 通过JVM JVM解释为机器码 通过JVM解释为机器码
? ?
废除指针: 废除指针:
– C/C++语言有指针类型;
Java语言没有指针类型 C/C++语言有指针类型;Java语言没有指针类型 语言有指针类型
继承: 继承:
– C++允许多继承;Java语言仅允许单继承 C++允许多继承;Java语言仅允许单继承 允许多继承
速度: 速度:
– C/C++运行速度快;Java运行速度相对有点慢 C/C++运行速度快;Java运行速度相对有点慢 运行速度快
Java和C最本质的区别就是:Java是面向对象的语 Java和 最本质的区别就是:Java是面向对象的语 就是:Java 面向过程的语言 虽然C可模拟OOP, 的语言( 言,而C是面向过程的语言(虽然C可模拟OOP, 但 它从本质来说还是面向过程的). 它从本质来说还是面向过程的). ? 其次, Java是运行在JVM上的,Java不会直接生成 其次, Java是运行在
JVM上的 Java不会直接生成 是运行在JVM上的, 机器码,而是生成JVM可以识别的代码, JVM可以识别的代码 机器码,而是生成JVM可以识别的代码,然后通过 JVM解释成机器代码 所以Java的可移植性很高, 解释成机器代码, Java的可移植性很高 JVM解释成机器代码, 所以Java的可移植性很高, 这点正是网络开发的特点,所以Java Java最擅长的领 这点正是网络开发的特点,所以Java最擅长的领 域是
网络. 域是网络. ? C多用于开发驱动程序,系统内核,嵌入式程序等 多用于开发驱动程序
系统内核, 开发驱动程序, 对速度要求比较高的程序. 对速度要求比较高的程序.
1-5:Java的开发和运行环境 ? 开发和运行环境是指编写和运行Java程序的
软件 开发和运行环境是指编写和运行Java程序的软件 是指编写和运行Java 工具。 工具。 –初学者首选的开发环境:JDK 初学者首选的开发环境: 初学者首选的开发环境 –其他集成开发工具:Jbuilder,VisualCafe、 其他集成开发工具: 其他集成开发工具 Jbuilder,VisualCafe、 JCreator、Eclipse、netBeans等 JCreator、Eclipse、netBeans等。
JDK
JDK是指Java Development Kit的简称, 由Sun公 JDK是指Java Kit的简称 的简称, Sun公 是指 司开发的Java开发环境。 Java开发环境 司开发的Java开发环境。 ? JDK工具包含了编译和运行Java程序所需的Java编 JDK工具包含了编译和运行Java程序所需的Java 工具包含了编译和运行Java程序所需的Java编 译器和Java虚拟机(解释器)。 译器和Java虚拟机(解释器) Java虚拟机 均架构在