Hello world

下面是 Java 的第一个 Hello world。

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

面向对象的特性是:所有的代码都放在类(class)里面。

public static void main (String[] args) 是 main函数的定义。

Java 编译运行

安装好 JDK 之后,想要运行 Java 程序,需要以下两个步骤:

  1. 编译 Java 源文件。
  2. 运行字节码文件。
1
2
3
$ javac HelloWorld.java  # 1. javac指令编译
$ java HelloWorld        # 2. java指令运行
Hello World! 

变量和循环

1
2
3
4
5
6
7
8
9
public class HelloNumbers {
    public static void main(String[] args) {
        int x = 0;
        while (x < 10) {
            System.out.print(x + " ");
            x = x + 1;
        }
    }
}

编译运行之后这样显示:

1
2
3
$ javac HelloNumbers.java
$ java HelloNumbers
0 1 2 3 4 5 6 7 8 9 

这里主要是区分 System.out.printlnSystem.out.print 的区别:System.out.println 会换行, System.out.print 则不换行。

强类型语言

Java 是一个强制类型定义的语言(大部分编译型的编程语言都是强类型),也就是说我们定义一个变量的时候需要声明它的类型和名称。

Python 则相反,x 可以是 int,过一会也可以变成 Dog 类型都可以。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
public class HelloNumbers {
    public static void main(String[] args) {
        int x = 0;
        while (x < 10) {
            System.out.print(x + " ");
            x = x + 1;
        }
        x = "horse";
    }
}

编译后会显示:

1
2
3
4
5
$ javac HelloNumbers.java 
HelloNumbers.java:9: error: incompatible types: String cannot be converted to int
        x = "horse";
                ^
1 error

这就是强类型定义的证明:定义为整数类型的 x,在经过 x = "horse" 赋值语句之后通过不了编译。

当然有例外:

1
String h = 5 + "horse";

这条语句就可以通过。Java 具有字符串拼接的特性,数字和字符串通过 + 拼接在一起,数字会强制转换为字符串:"5horse"

Java 函数定义

先来一段 Python:

1
2
3
4
5
6
def larger(x, y):
    if x > y:
        return x
    return y

print(larger(8, 10))

刚刚提到过 Java 的所有代码写在类里面,所以加上类,改一下 print 的方法就可以了。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public class LargerDemo {
    public static int larger(int x, int y) {
        if (x > y) {
            return x;
        }
        return y;
    }

    public static void main(String[] args) {
        System.out.println(larger(8, 10));
    }
}

代码规范

详细的代码规范可以在这里查看:

Style Guide | CS 61B Spring 2019

顺便提一下 Javadoc:有一种注释方法,可以通过 Javadoc 生成 HTML 文档。Java 程序员可以给每一个函数加上这样的注释,用 Javadoc 生成 HTML,方便后续的程序员读懂代码。

这种注释方法是:/** 注释内容 */