1.1 Java 语言的特点
- 简单易学
- 面向对象(封装、继承、多态)
- 跨平台(Windows、MacOS、Linux)
- 解释和编译并存
- 安全可靠
- 支持多线程编程
- 支持网络编程
1.2 JVM、JDK、JRE
- JVM : Java 虚拟机
- JDK : Java 工具包
- JRE : Java 运行环境
JVM
JVM 是 Java 字节码的虚拟机,针对不同的系统有不同的实现,目的是使用相同的字节码文件,最终给出相同的结果。字节码文件通过JVM生成机器可执行的二进制机器码
字节码:
在Java中 JVM 可以理解的代码就成为 字节码。(.class 文件)
Java 为什么是 解释型和编译型并存的?
Java 文件经过编译器生成对应的.class 字节码文件,JVM 读取.class 字节码文件,由解释器逐行解释执行,这种方式比较慢。之后引入了 JIT 编译器(运行时编译器);当JIT完成第一次字节码编译后,会将字节码对应的二进制机器码保存下来,之后可以直接调用。而二进制机器码的执行效率肯定高于Java解释器。
编译型语言:
编译型语言是指编译器针对特定的操作系统将源程序解析成为平台可执行的机器码;
解释型语言:
解释型语言是指解释器将源程序逐行解释成为特定平台的机器码并执行;
Java即是编译型也是解释型语言:java 文件通过编译器生成 字节码.class 文件,再由解释器解析成平台机器码;
Java 和 C++ 的区别:
- Java 和 C++ 都是面向对象,可封装、继承、多态
- Java 的类是单继承的,接口是多继承的;C++可以多继承
- Java 不存在由指针直接操作内存的情况
- C++ 字符串存在结束符,Java没有
- Java 存在内存回收机制,不需要手动释放内存
1.3 Java 主类
Java 程序可以有很多类,但是只有一个主类;主类是程序执行的入口点。
Java 应用程序的主类指的是包含 main() 方法的类;而小程序的主类指的是继承自系统JAPPLET 或 APPLET 类;应有程序的主类可以非 public,但小程序的主类必须是 public 。
1.4 Java 程序运行机制
-
编译型
-
解释型
-
程序运营机制
.java 文件 -> Java 编译器 -> .class 字节码文件 -> 类加载器 -> 字节码校验器 -> Java 解释器 -> 操作平台