一個簡單的Java程式 // HelloJava.java public class HelloJava { public static void main(String[] args) { System.out.println("Hello Java!"); } } Java是區分大小寫的 關鍵字 ...
一個簡單的Java程式
// HelloJava.java
public class HelloJava {
public static void main(String[] args) {
System.out.println("Hello Java!");
}
}
- Java是區分大小寫的
- 關鍵字public稱為訪問修飾符,這些修飾符用於控製程序的其他部分對這段代碼的訪問級別
- Java類名的標準命名規範:駱駝命名法。類名以大寫字母開頭。如果名字由多個單片語成,每個單詞的第一個字母都應該大寫。
- 源代碼的文件名必須與公共類的名字相同,並用.java作為擴展名。因此存儲上面這段代碼的文件名必須是HelloJava.java
使用命令行工具編譯運行Java程式
- java -version:查看Java SE的版本信息
javac HelloJava.java
:編譯.java源文件,生成尾碼為.class的位元組碼文件java HelloJava
:使用Java解釋器將位元組碼文件翻譯成機器代碼
Java程式的執行過程
Java程式的運行必須經過編寫、編譯和運行3個步驟
- 編輯:是指在Java開發環境中進行程式代碼的輸入,最終形成尾碼名為.java的Java源文件。
- 編譯:是指使用Java編譯器對源文件進行錯誤排査的過程,編譯後將生成尾碼名為.class的位元組碼文件,不像C語言那樣生成可執行文件。
- 運行:是指使用Java解釋器將位元組碼文件翻譯成機器代碼,執行並顯示結果。
什麼是位元組碼文件?
位元組碼文件是一種和任何具體機器環境及操作系統環境無關的中間代碼。它是一種二進位文件,是Java源文件由Java編譯器編譯後生成的目標代碼文件。編程人員和電腦都無法直接讀懂位元組碼文件,它必須由專用的Java解釋器來解釋執行,因此Java是一種在編譯基礎上進行解釋運行的語言。
Java解釋器負責將位元組碼文件翻譯成具體硬體環境和操作系統平臺下的機器代碼,以便執行。因此Java程式不能直接運行在現有的操作系統平臺上,它必須運行在被稱為Java虛擬機的軟體平臺之上。
Java虛擬機(JVM)是運行Java程式的軟體環境,Java解釋器是Java虛擬機的一部分。在運行Java程式時,首先會啟動JVM,然後由它來負責解釋執行Java的位元組碼程式,並且Java位元組碼程式只能運行於JVM之上。這樣利用JVM就可以把Java位元組碼程式和具體的硬體平臺以及操作系統環境分隔開來,只要在不同的電腦上安裝了針對特定平臺的JVM,Java程式就可以運行,而不用考慮當前具體的硬體平臺及操作系統環境,也不用考慮位元組碼文件是在何種平臺上生成的。
JVM把這種不同軟、硬體平臺的具體差別隱藏起來,從而實現了真正的二進位代碼級的跨平臺移植。JVM是Java平臺架構的基礎,Java的跨平臺特性正是通過在JVM中運行Java程式實現的。Java的這種運行機制可通過下圖說明:
Java語言這種“一次編寫,多端運行”的方式,有效地解決了目前大多數高級程式設計語言需要針對不同系統來編譯產生不同機器代碼的問題,即硬體環境和操作平臺的異構問題,大大降低了程式開發、維護和管理的開銷。
Java程式通過JVM可以實現跨平臺特性,但JVM是不跨平臺的。也就是說,不同操作系統之上的JVM是不同的,Windows平臺之上的JVM不能用在 Linux平臺,反之亦然。
註釋(Comments)
// 行註釋
/*
塊註釋
*/
JDK包含一個很有用的工具,叫做javadoc,它可以由源文件生成一個HTML文檔
/**
*/
/**
*
*
*/
上面兩種格式都是合法的,第二種是大部分IDE會提供的格式。
在文檔註釋的第一句應該是概要性的句子。javadoc工具自動將這些句子抽取出來生成概要頁
類註釋必須放在import語句之後,類定義之前。每個方法註釋必須放在所描述的方法之前。
常用的javadoc標記
- @author:指定Java程式的作者。
- @version:指定源文件的版本。
- @deprecated:不推薦使用的方法。
- @param:方法的參數說明信息。
- @return:方法的返回值說明信息。
- @see:“參見”,用於指定交叉參考的內容。
- @exception:拋出異常的類型。
- @throws:拋出的異常,和@exception同義。
需要指出的是,這些標記的使用是有位置限制的。上面這些標記可以出現在類或者介面文檔註釋中的有@see、@deprecated、@author、@version等;可以出現在方法或構造器文檔註釋中的有@see、@deprecated、@param、@return、@throws和@exception等;可以出現在成員變數的文檔註釋中的有@see和@deprecated等。
關鍵字(Keywords)
Java語言中有一些具有特殊用途的單詞被稱為關鍵字(keywords),當定義標識符時,不要讓標識符和關鍵字相同,否則將引起錯誤。
abstract | continue | for | new | switch |
---|---|---|---|---|
assert | default | if | packa | synchronized |
boolean | do | goto | private | this |
break | double | implements | protected | throw |
byte | else | import | public | throws |
case | enum | instanceof | return | transient |
catch | extends | int | short | try |
char | final | interface | static | void |
class | finally | long | strictfp | volatile |
const | float | native | super | while |
其中goto和const這兩個關鍵字也被稱為保留字,意思是,Java現在還未使用這兩個關鍵字,但可能在未來的Java版本中使用這兩個關鍵字。
以下字元序列不能用作關鍵字:
- true、false不能用作關鍵字,它們是boolean型字面量
- null不能用作關鍵字,它是null字面量
- var也不是關鍵字,而是作為標識符和lambda形式參數
數據類型
Java是一種強類型語言。這意味著必須為每一種變數聲明一種類型。Java中支持的數據類型分為兩類:基本類型(Primitive Type)
和引用類型(Reference Type)
。
基本類型包括boolean類型和數值類型。數值類型有整數類型和浮點類型。整數類型包括byte、short、int、long、char,浮點類型包括float和double
引用類型包括類
、介面
和數組
類型,還有一種特殊的null類型。所謂引用數據類型就是對一個對象的引用,對象包括實例和數組兩種。
空類型(null type)就是null值的類型,這種類型沒有名稱。因為null類型沒有名稱,所以不可能聲明一個null類型的變數或者轉換到null類型。空引用(null)是null類型變數唯一的值。空引用(null)可以轉換為任何引用類型。