Skip to content

Java 入门要点

Java 的大体形式与 C++ 等主流静态类型语言类似,部分地方甚至与 Python 等动态类型语言相通。

重要特性

条件语句、循环语句等这些老生常谈的细节这里就不再赘述,下面记录一些 Java 的部分重要特性以及一些不同于其他语言的特性。

  1. Java 是一种面向对象的语言

    • 每个.java文件都必须包含至少一个类声明

    • 所有的代码实现均位于中,包括全局常量与辅助函数

    • Java 程序的主调逻辑通常需要在public static void main(String[] args)方法中定义

  2. Java 是一个静态类型语言

    • 源码中的所有变量、方法(函数)、参数等都需要显式声明类型

    • 一旦声明完成,对象的数据类型就不可改变

    • 类型问题与错误只会在编译过程中出现,不会出现在程序运行时

    静态类型语言的优点与缺点

    • 优点

      • 可以很轻松地捕捉并定位类型错误,方便Debug

      • 类型问题与错误基本只会在编译过程中出现,即几乎不可能出现在用户计算机上

      • 能够提升代码的运行效率,因为不需要在程序运行时进行类型检查

    • 缺点

      • 代码冗长

      • 代码复用性较低(不同返回类型的相同处理逻辑需要进行类型重载

如何编写并运行一个 Java 程序

根据前面学习的特性,我们便可以开始着手编写一个简单的 Java 程序。

环境配置这里不再赘述,可以参考这篇文章

以经典的 Hello World 为例,首先创建一个.java文件,取名为HelloWorld

public class HelloWorld {
    public static int main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Important

  • 需要注意,包含主调方法(main方法)且使用public修饰的类必须与文件同名,且大小写敏感!

  • 如果类不是public的(例如使用默认访问修饰符),则类名可以与文件名不同——但这种方式不推荐,因为不符合Java的惯例,且可能导致代码管理混乱。

  • 一个.java文件中可以定义多个类,但最多只能有一个public类,且public类的名称必须与文件名一致。其他非public类可以有不同名称。

为保持代码清晰和遵循Java规范,一般建议始终让包含main方法的类名与文件名一致,并使用public修饰。

编写完成后,需要对源码进行编译。这里需要用到 Java 编译器,即javac

javac HelloWorld.java

编译顺利完成后会在当前路径下生成一个与源文件同名的.class文件,这个文件包含了Java字节码,是一种中间代码,需要通过JVM(Java Virtual Machine, Java虚拟机)解释执行,即Java解释器(java),而不是像.exe文件那样可以直接在操作系统上运行:

$ java HelloWorld
Hello, World!

JVM

Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行1

JVM是Java跨平台特性的核心,其架构十分复杂,详情可参考How JVM Works - JVM Architecture