(1) 第一個程序HelloWorld:
package mypack; //相當於一個目錄 public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World"); } }
注:
1、文件名必須和public修飾的類名一致,以.java作為文件后綴,如果定義的類不是public的,則文件名與類名可以不同。
2、一個.java文件中可以有多個class,但是只有一個public修飾的類。
3、java源代碼文件編譯后,一個類對應生成一個.class文件。
4、一個java應用程序應該包含一個main()方法,而且其簽名是固定的,它是應用程序的入口方法,可以定義在任意一個類中,不一定是public修飾的類。
編譯:javac -d . HelloWorld.java
含有包的類,在編譯的時候最好用上面的格式,-d指的是讓該類生成的時候按照包結構去生成,“.”指的是在當前路徑下生成。
如果不用上面的格式,也可以用javac HelloWorld.java,但是需要注意的是包結構就要由自己去建立,然后將生成的.class文件放到該目錄下。
執行:java mypack.HelloWorld
將字節碼文件交給Java虛擬機去解釋執行。
需要注意的事,必須使用包名.類名去解釋執行。
(2) Java的運行過程
編譯:生成可執行文件,如C++中利用g++生成a.out,效率高,但不跨平台。
解釋:解釋器把源文件逐行解釋,跨平台但效率不高。
在java中,先編譯后解釋,把.java文件編譯成.class字節碼文件:
Java源代碼文件(.java文件)
Java編譯器(javac)
Java字節碼文件(.class文件,平台無關的) Java解釋器(java),執行Java字節碼
Java是跨平台的語言,真正執行的不是二進制代碼,而是字節碼。
Java程序的執行實際上是在JVM(Java Virtual Machine,Java虛擬機)上解釋執行的,Java是跨平台的,而JVM不是跨平台的(JVM是由C語言編寫的),Java之所以能夠做到跨平台,本質原因在於JVM不是跨平台的。