0%

Java入门纲要

本文不是一篇面面俱到的入门教程,而仅是入门的纲要,通常只会列出笔者认为重要的知识点。 如阅读过程中遇到问题,可自行参考其他在线教程。

Java 是什么?

Java 是一种跨平台的高级解释型编程语言。

Java 的源代码以文本形式编写,并保存为 .java 文本文件,并通过编译程序(javac)编译成以 .class 为后缀的字节码, 再通过执行程序(java)对字节码进行解释执行。

要编译和执行 Java 程序,就需要安装 JDK。因此,通常我们说 Java 的时候也隐含包括了其开发与运行平台。

对于平台,这里我们只讨论 Java SE,不涉及 Java EE 和 Java ME。

如果仅仅是执行编译后的 Java 程序,安装 JRE 就可以了,但如果需要开发 Java 程序,就需要安装 JDK。

JDK 包含 JRE,因此,安装了 JDK 就不需要安装 JRE 了。

JDK/JRE 下载安装

推荐到 jdk.java.net 下载 JDK。

对于 Java 10 及之前版本的 JDK 或 JRE,也可以到 Oracle 官网下载。

从 Java 11 开始,Oracle 将许可证更改为免费和商用混合许可,也就是说,如果用于生产环境可能会面临收费问题。

因此,应从 java.net 下载 OpenJDK 版本。

下载软件包后正常安装即可。新版的 JDK 通常并不需要设置 path 和 classpath 就可使用。这里就不赘述安装配置过程了。

HelloWorld

1
2
3
4
5
6
7
8
9
// 源文件:HelloWorld.java
public class HelloWorld {
/*
* Java入门程序
*/
public static void main(String[] args) {
System.out.println("Hello, World"); // 打印 Hello World
}
}

上面是一段简单的 Java 入门程序,俗称“Hello, World”程序。

“Hello, World”程序功能是简单输出“Hello, World”。

大多数语言的入门第一个程序就是“Hello, World”——这源于 C 语言的教程。

该种程序功能单一、结构简洁,并能展示语言的部分语法特性等,所以被广用于语言入门的首例。

展示了什么

上面的示例程序展示了 Java 的一些重要概念和语法:

  • 整个程序保存在一个以 .java 为后缀的文本文件中
  • 所有代码都包裹在类结构中
  • 类或方法的主体用一对花括号界定
  • 可以插入注释
  • 程序的入口是 main 方法

下面我们一一进一步说明这些展示的概念与语法。

首先,Java 的源文件都是以 .java 为后缀的文本文件,它们都是普通的文本文件。 最简单的创建方式是新建一个 .txt 文件并更名为 .java 文件。当然,开发工具中可以直接创建 .java 文件的。

Java 是面向对象的语言,因此,所有的程序都是基于类的,代码不能脱离类而存在。 类使用 class 关键字定义,类体用一对花括号括起来。

源代码中因插入注释,以进行必要的说明。示例中使用了单行注释(“//”及之后部分)及多行注释(“/*”和“*/”之间部分)。

Java 程序的入口是 main 方法,其格式是特定的,虽然允许有部分变体写法,但一些条件是必需达成的:

  • 方法名必须是 main
  • 必须是 public 的,以确保该方法为公共可访问的
  • 必须是 static 的,以确保该方法从属于类而不需要依赖实例执行
  • 返回值类型必须为 void,即不返回任何内容
  • 参数必须为一个字符串数组

怎么执行

如何执行我们编写的“Hello, World”程序呢?仅需要编译、运行即可。

首先,使用 javac HelloWorld.java 对源代码进行编译,这会在同个目录下生成一个 HelloWorld.class 字节码文件。

然后,使用 java HelloWorld(注意没有 .class)执行字节码文件即可。

运行完成,终端会输出“Hello, World”字符串。

真实的样子

上文已经引导读者编写、编译并运行了一个入门小程序,已经体验了 Java 语言的一小部分能力。 但真实的世界中,我们是以这种方式工作的吗?

当然不是!

首先,真实的情况下是以工程(甚至是多个工程组合)的形式组织管理程序的。 使用 Eclipse 或 IntelliJ IDEA 等等 IDE 工具可以快速地创建、编写、运行程序。

其次,程序也不会输出为一堆字节码文件,而通常打包为 .jar、.war、.ear……

另外,通常我们不会从最基础的部分开始编码,而是引用第三方提供的工具包,一般以 jar 包形式提供。 并且,目前也很少手动维护这些依赖,而是通过 Maven 或 Gradle 等工具完成。

当然,根据实际目标的不同,可能还会涉及更多其他的工具。

总之,除了语言本身的使用,Java 还有很多外延的知识技能需要掌握。

下一步

鉴于本系列是一个基础教程,后续将主要关注 Java 语言本身的知识点。

在笔者看来,学习入门一门编程语言应该都是大同小异的:

  1. 基本概念的学习。初步了解和把握语言。
  2. 环境搭建部署。为实操作准备。
  3. 语法学习。内容主要包括:关键字含义、标识符规则、修饰符的作用、数据类型、运算符种类、流程控制、异常处理……
  4. 常用内置 API 学习。包括常用数据结构、基础功能类、工具类等等。

当然,如果本身已经掌握了一门编程语言,那么,学习新语言应该会轻松不少。因为,可以通过对比的方式来进行差异化学习, 即只需重点关注语言间不同的部分,相同或类似的部分可以快速学习吸收。

相关资料