Java Hello World

Catalogue

本人擅长用各种编程语言实现“Hello World”程序。

参考书籍:李刚, 《疯狂Java讲义(第三版)》, 北京:电子工业出版社, 2014.

###环境变量配置

环境变量的设置很重要。Windows中的配置如下:

1
%JAVA_HOME%    C:\Java\jdk1.7.0_25
1
CLASSPATH    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
1
PATH    %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

如果这样设置后运行javajavac命令还不能生效,可以试试重启电脑。

###Hello World

1
2
3
4
5
6
/* 文件命名为 hello.java */
public class hello{
public static void main(String[] args){
System.out.println("Hello world!");
}
}

在该目录下打开命令行,运行

1
javac hello.java

这样可以生成字节码 hello.class文件。然后运行

1
java hello

于是就可以 Hello World 了。

###Using Package

hello.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com;  /**/

public class hello{
public static void main(String[] args){
System.out.println("Hello world!");
Person me = new Person();
me.name = "wzl";
me.saysomething();
}
}

class Person{
public String name;
public int age;
public void run(){
System.out.println("I am running...");
}
public void saysomething(){
System.out.println("Daddy is "+name);
run();
}
}

hello.java的同目录下运行:

1
javac -d . hello.java

这样会生成一个名为com的新目录,里面包括两个.class文件:hello.classPerson.class

要运行这个hello程序,在com的上一级目录下:

1
java com.hello

而进入com目录后,无论运行java com.hello,还是运行java hello,都会失败。

Java的包机制需要两个方面保证:

  • 源文件里使用package语句指定包名;
  • class文件必须放在对应的路径下。

###多态

sub.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* 关于多态 */
class base{
public int name = 1;
public void base(){
System.out.println("base method.");
}

public void test(){
System.out.println("method to be overriden.");
}
}

public class sub extends base{
public String name = "i am sub class";
public void test(){
System.out.println("test method from sub class.");
}

public void sub(){
System.out.println("sub method");
}

public static void main(String[] args){
/* 把子类的对象赋值给父类的引用变量 */
base bc = new sub();
System.out.println(bc.name); /* 输出: 1 。因为实例变量并不具备多态性。*/
bc.base(); /* 输出: base method. */
bc.test(); /* 输出: test method from sub class. */
}
}

###若干基本名词

  • __JVM__:Java Virtual Machine,Java虚拟机。Java编译器将Java程序编译为平台无关的字节码,这些字节码不面向任何具体平台,只面向JVM。不同平台的JVM是不同的,但对字节码的接口是相同的。
  • __JRE__:Java Runtime Environment,Java运行时环境
  • __JDK__:Java SE Development Kit,Java标准版开发包,是Sun公司提供的一套用于开发Java应用程序的开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。
Share