Java 概述

Java 是一门非常纯粹的面向对象的编程语言,具有功能强大、简单易用的特点。

一、特点

  • 支持面向对象
  • 通过 JVM 和通用的 class 文件,支持跨平台,一处编写处处运行
  • 支持自动垃圾回收

二、运行机制

1. 编译型

编译:使用编译器,将程序源代码编译成可被该平台直接执行的机器代码。

  • 在一次编译以后,就可以脱离开发环境独立运行
  • 跨平台移植时,往往需要用源代码重新编译
  • 运行效率较高

2. 解释型

解释:使用解释器,对程序源代码进行逐行解释和执行,运行完成后,并不保存机器代码。

  • 每次执行都需要一次解释
  • 可以进行方便的跨平台移植(因为程序代码都是相同的,只要有对应平台的解释器即可)
  • 因为每次执行都需要解释,因此效率较低,且不能脱离编译器独立运行

3. Java 运行机制

Java 既是编译型语言,也是解释型语言。

  • 开发人员编写 Java 代码

  • 代码被编译成 .class 文件

  • Java 虚拟机(即 JVM)解释 .class 文件并运行

4. 跨平台

Java 代码会被变异成字节码文件,这种字节码文件与平台无关,并且可以被 Java 虚拟机解释并执行。因此,只要在特定平台上存在 JVM 的实现,Java 代码就能够在该平台上运行。这使得 Java 实现了 “一次编写,处处运行”。

三、JDK、JRE 和 JVM

1. JDK

Java 程序开发工具包,包含:

  • JRE
  • 开发工具
    • 编译工具
    • 运行工具

2. JRE

Java 程序运行时环境,包含 JVM 和运行时所需的核心类库。

3. JVM

Java 虚拟机,识别 .class 文件,并将其转化为计算机能够识别的语言。

四、基本规则

1. 组织形式

(1) 程序应该放置在类中

Java 是一种纯粹的面向对象的程序设计语言,因此 Java 程序必须以类(class)的形式存在,类是 Java 中最小的程序单位。Java 程序不允许可执行语句、方法等成分独立存在,所有的程序部分都必须放在类中。

类的定义格式:

1
2
3
public class 类名 {

}

(2) 程序的入口为 main

Java 解释器规定:仅当某个类中包含 main 方法(并且 main 方法由 public static 修饰,返回值为 void,形参为 String[] args),该类才能被编译器执行。

因此,main的写法是固定的:

1
2
3
public static void main(String[] args) {
···
}

Java 编译器从 main 开始解释执行,main 方法是程序的入口。

对于一个大型的 Java 程序而言,往往只需要一个入口,其它类被 main 方法直接或间接调用。

当然,可以给每个类都增加一个 main 方法,方便于模块的调试

2. 命名规则

  • Java 源文件的扩展名必须是 .Java

    • 一个文件中可以定义多个类,但只能定义一个 public 类

    • 若文件中定义了一个 public 类,则文件名应与该类名相同

  • 建议将文件名与类名始终设为相同

  • 建议一个文件只放置一个类

五、Hello World

1. Java 文件

新建 HelloWorld.Java ,填写如下:

1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld!");
}
}

2. 编译

1
Javac 文件名.Java

3. 执行

1
Java 类名

六、垃圾回收器

1. 什么是垃圾回收

对于传统的 C/C++ 等编程语言,程序员需要负责回收已经分配的内存。如果没有及时回收内存空间,将引起系统运行速度下降,甚至导致程序瘫痪,这种现象被称为内存泄漏

而在 Java 中,内存分配及回收都由 JRE 在后台自动进行。JRE 会负责回收那些不再使用的内存,这种机制被称为垃圾回收

2. 特性

  • 垃圾回收机制只负责回收堆内存中的对象,不会回收物理资源(数据库连接、网络连接等)
  • 无法精确控制回收机制

3. 优缺点

垃圾回收机制的优点:

  • 提升编程效率
  • 防止内存泄漏,保证程序安全

垃圾回收机制的缺点:

  • 一定程度上会影响程序的性能,因为虚拟机需要对程序中的对象进行跟踪、判断

4. 基本原则

编写 Java 程序时,一个基本原则是:

对于不再需要的对象,不要引用它们,以便让垃圾回收机制及时回收内存空间。

参考