0%

Java Hello World!

ZuluJDK-的安装以及-IntellJ-IDEA-的安装与使用一文中,新建项目后,我写下了以下代码:

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

现在开始一步步解析。

第一行代码

1
class GoodGoodStudy {}

这一段话的作用是声明了一个类,类名为GoodGoodStudy,类名必须与文件名一致

class

在Java中,class是一个关键字,用于声明一个类。

GoodGoodStudy

GoodGoodStudy为类名,即类的名称,简称为类名。此处涉及了类的命名规范,将在下文详细介绍。

类的命名规范
  1. 类名应当遵循大驼峰命名法,即类名中的每个单词首字母大写,以方便阅读。
  2. 类名应当体现该类的意义,如程序主入口命名为项目名或Main比较恰当。
  3. 如果是接口,则应当在类名前加上大写的I。(接口在后续教程中会讲到,此处只需留有一定印象)。

第二行代码

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

关于public,实际上可以引出Java中四个权限修饰符——private,protected,default,public,这四个权限修饰符同样都是关键字。其中的区别可以看下图。

图片.png

static

此处static同样是关键字,在此处的作用是将main方法声明为静态方法

静态方法的作用是,哪怕不实例化一个类的对象,也可以直接调用该类的静态方法。例如:

1
2
3
4
5
class Demo {
public static void printHello() {
System.out.println("Hello!");
}
}

而在其他类调用时,可以这么调用:

1
2
3
4
5
class TestPrintHello {
public static void main(String[] args) {
Demo.printHello();
}
}

但是在静态方法中不能调用非静态方法或非静态变量

void

void同样是关键字,用于声明被声明的方法没有返回值。即不会返回任何值。

main

main不是关键字,参数为String[] args的main函数为程序主入口,一个类中只有一个入口。

程序运行时将从main入口开始。

String[] args

String[] args 意思是申明一个名为args的数组,在main函数处,args是该函数的一个参数,当运行程序时,可以附带参数。

在idea中编译运行时,可以点击图中位置而后点击编辑运行环境(Edit Configurations…),参数即可在Build and run -> Program arguments中输入。

图片.png

如果选择使用cmd运行jar文件,可以使用如下命令:

1
java -jar xxx.jar arg1 arg2 arg3

此时main方法中的args[1] = “arg1”, args[2] = “arg2”, args[3] = “arg3”。

第三行代码

System.out.println();

System是JDK中自带的一个类,位于java.lang包下,而out则是System类中的一个方法,其doc与声明如下:

The “standard” output stream. This stream is already open and ready to accept output data. Typically this stream corresponds to display output or another output destination specified by the host environment or user.
For simple stand-alone Java applications, a typical way to write a line of output data is:
System.out.println(data)

See the println methods in class PrintStream.
See Also:
PrintStream.println(), PrintStream.println(boolean), PrintStream.println(char), PrintStream.println(char[]), PrintStream.println(double), PrintStream.println(float), PrintStream.println(int), PrintStream.println(long), PrintStream.println(Object), PrintStream.println(String)

1
public final static PrintStream out = null;

其作用是获取一个类型为PrintStream的out对象,而PrintStream类中包含println方法,

java中调用方法有两种方式,一是申明为static的方法可直接通过类名.方法调用,二是通过实例化一个类的对象,再使用对象.方法

println作用是打印所传的参数,并且换行。

Prints a String and then terminate the line. This method behaves as though it invokes print(String) and then println().
Params:
x – The String to be printed.

1
2
3
4
5
6
public void println(String x) {
synchronized (this) {
print(x);
newLine();
}
}

有兴趣的可以对底层代码进行更进一步的研究,此处不再赘述。

原创技术分享,您的支持将鼓励我继续创作.