1. 程式人生 > 實用技巧 >Java基礎(01)--簡介及基礎語法

Java基礎(01)--簡介及基礎語法

Java基礎(01)--簡介及基礎語法

Java特性

  • Java語言是簡單的:

    Java語言的語法與C語言和C++語言很接近,使得大多數程式設計師很容易學習和使用。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符過載、多繼承、自動的強制型別轉換。特別地,Java語言不使用指標,而是引用並提供了自動的廢料收集,使得程式設計師不必為記憶體管理而擔憂。

  • Java語言是面向物件的:

    Java語言提供類、介面和繼承等面向物件的特性,為了簡單起見,只支援類之間的單繼承,但支援介面之間的多繼承,並支援類與介面之間的實現機制(關鍵字為implements)。Java語言全面支援動態繫結,而C++語言只對虛擬函式使用動態繫結。總之,Java語言是一個純的面向物件程式設計語言。

  • Java語言是分散式的:

    Java語言支援Internet應用的開發,在基本的Java應用程式設計介面中有一個網路應用程式設計介面(java net),它提供了用於網路應用程式設計的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠端方法啟用)機制也是開發分散式應用的重要手段。

  • Java語言是健壯的:

    Java的強型別機制、異常處理、垃圾的自動收集等是Java程式健壯性的重要保證。對指標的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。

  • Java語言是安全的:

    Java通常被用在網路環境中,為此,Java提供了一個安全機制以防惡意程式碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網路下載的類具有一個安全防範機制(類ClassLoader)

    ,如分配不同的名字空間以防替代本地的同名類、位元組程式碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設定安全哨兵.

  • Java語言是體系結構中立的:

    Java程式(字尾為.java的檔案)在Java平臺上被編譯為體系結構中立的位元組碼格式(字尾為.class的檔案),然後可以在實現這個Java平臺的任何系統中執行。這種途徑適合於異構的網路環境和軟體的分發。

  • Java語言是可移植的:

    這種可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本資料型別的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的執行環境是用ANSI C實現的。

  • Java語言是解釋型的:

    如前所述,Java程式在Java平臺上被編譯為位元組碼格式,然後可以在實現這個Java平臺的任何系統中執行。在執行時,Java平臺中的Java直譯器對這些位元組碼進行解釋執行,執行過程中需要的類在聯接階段被載入到執行環境中。

  • Java是高效能的:

    與那些解釋型的高階指令碼語言相比,Java的確是高效能的。事實上,Java的執行速度隨著JIT(Just-In-Time)編譯器技術的發展越來越接近於C++。

  • Java語言是多執行緒的:

    在Java語言中,執行緒是一種特殊的物件,它必須由Thread類或其子(孫)類來建立。通常有兩種方法來建立執行緒:其一,使用型構為Thread(Runnable)的構造子類將一個實現了Runnable介面的物件包裝成一個執行緒,其二,從Thread類派生出子類並重寫run方法,使用該子類建立的物件即為執行緒。值得注意的是Thread類已經實現了Runnable介面,因此,任何一個執行緒均有它的run方法,而run方法中包含了執行緒所要執行的程式碼。執行緒的活動由一組方法來控制。Java語言支援多個執行緒的同時執行,並提供多執行緒之間的同步機制(關鍵字為synchronized)。

  • Java語言是動態的:

    Java語言的設計目標之一是適應於動態變化的環境。Java程式需要的類能夠動態地被載入到執行環境,也可以通過網路來載入所需要的類。這也有利於軟體的升級。另外,Java中的類有一個執行時刻的表示,能進行執行時刻的型別檢查。

Java基礎語法

一個 Java 程式可以認為是一系列物件的集合,而這些物件通過呼叫彼此的方法來協同工作

  • 物件:物件是類的一個例項,有狀態和行為。
  • :類是一個模板,它描述一類物件的行為和狀態。
  • 方法:方法就是行為,一個類可以有很多方法。邏輯運算、資料修改以及所有動作都是在方法中完成的。
  • 例項變數:每個物件都有獨特的例項變數,物件的狀態由這些例項變數的值決定。

編寫 Java 程式時,應注意以下幾點:

  • 大小寫敏感:Java 是大小寫敏感的,這就意味著識別符號 base.Hello 與 hello 是不同的。
  • 類名:對於所有的類來說,類名的首字母應該大寫。如果類名由若干單片語成,那麼每個單詞的首字母應該大寫,例如 MyFirstJavaClass
  • 方法名所有的方法名都應該以小寫字母開頭。如果方法名含有若干單詞,則後面的每個單詞首字母大寫。
  • 原始檔名原始檔名必須和類名相同。當儲存檔案的時候,你應該使用類名作為檔名儲存(切記 Java 是大小寫敏感的),檔名的字尾為 .java。(如果檔名和類名不相同則會導致編譯錯誤)。
  • 主方法入口所有的 Java 程式由 public static void main(String[] args) 方法開始執行。

第一個Java程式

public class base.Hello {
    public static void main(String[] args) {
        /*
        * 第一個Java程式,
        * 列印 base.Hello World
        *  */
        System.out.println("base.Hello World");
    }
}
  • 在命令列視窗輸入 javac HelloWorld.java 按下回車鍵編譯程式碼生成HelloWorld.class。如果程式碼沒有錯誤,cmd 命令提示符會進入下一行(假設環境變數都設定好了)。
  • 再鍵輸入 java HelloWorld 按下回車鍵就可以執行程式了

Java識別符號

Java 所有的組成部分都需要名字。類名、變數名以及方法名都被稱為識別符號。

關於 Java 識別符號,有以下幾點需要注意:

  • 所有的識別符號都應該以字母(A-Z 或者 a-z),美元符($)、或者下劃線(_)開始
  • 首字元之後可以是字母(A-Z 或者 a-z),美元符($)、下劃線(_)或數字的任何字元組合
  • 關鍵字不能用作識別符號
  • 識別符號是大小寫敏感的
public class TestIdentify {
	// 合法識別符號舉例:
    int age = 1;
    int $salary = 100;
    int _value = 2;
    int __1_value=-1;

    // 非法識別符號舉例:123abc、-salary
}

Java修飾符

像其他語言一樣,Java可以使用修飾符來修飾類中方法和屬性。主要有兩類修飾符:

  • 訪問控制修飾符 : default, public , protected, private
  • 非訪問控制修飾符 : final, abstract, static, synchronized

Java變數

Java 中主要有如下幾種型別的變數

  • 區域性變數
  • 類變數(靜態變數)
  • 成員變數(非靜態變數)

Java列舉

列舉限制變數只能是預先設定好的值。使用列舉可以減少程式碼中的 bug。

class base.FreshJuice{
    enum FreshJuiceSize {SMALL, MEDIUM, LARGE}
    FreshJuiceSize size;
}

public class base.FreshJuiceTest {
    public static void main(String[] args) {
        base.FreshJuice juice = new base.FreshJuice();
        System.out.println(juice.size);
        juice.size = base.FreshJuice.FreshJuiceSize.MEDIUM;
        System.out.println(juice.size);
    }
}

Java關鍵字

下面列出了 Java 關鍵字。這些保留字不能用於常量、變數、和任何識別符號的名稱。

類別 關鍵字 說明
訪問控制 private 私有的
protected 受保護的
public 公共的
default 預設
類、方法和變數修飾符 abstract 宣告抽象
class
extends 擴充,繼承
final 最終值,不可改變的
implements 實現(介面)
interface 介面
native 本地,原生方法(非 Java 實現)
new 新,建立
static 靜態
strictfp 嚴格,精準
synchronized 執行緒,同步
transient 短暫
volatile 易失
程式控制語句 break 跳出迴圈
case 定義一個值以供 switch 選擇
continue 繼續
default 預設
do 執行
else 否則
for 迴圈
if 如果
instanceof 例項
return 返回
switch 根據值選擇執行
while 迴圈
錯誤處理 assert 斷言表示式是否為真
catch 捕捉異常
finally 有沒有異常都執行
throw 丟擲一個異常物件
throws 宣告一個異常可能被丟擲
try 捕獲異常
包相關 import 引入
package
基本型別 boolean 布林型
byte 位元組型
char 字元型
double 雙精度浮點
float 單精度浮點
int 整型
long 長整型
short 短整型
變數引用 super 父類,超類
this 本類
void 無返回值
保留關鍵字 goto 是關鍵字,但不能使用
const 是關鍵字,但不能使用
null

註釋

  • 單行註釋
  • 多行註釋
  • 文件註釋
public class base.Hello {
	public static void main(String[] args){
		// 單行註釋
		System.out.print("base.Hello World");
		
		/*
		多行註釋
		多行註釋
		*/
	}
}

Java空行

空白行或者有註釋的行,Java 編譯器都會忽略掉。

繼承

在 Java 中,一個類可以由其他類派生。如果你要建立一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新建立的類繼承該類。

利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些程式碼。被繼承的類稱為超類(super class),派生類稱為子類(subclass)。

介面

在 Java 中,介面可理解為物件間相互通訊的協議。介面在繼承中扮演著很重要的角色。

介面只定義派生要用到的方法,但是方法的具體實現完全取決於派生類。

Java程式執行機制

  • 編譯型
  • 解釋型

public class base.Hello {
	public static void main(String[] args){
		System.out.print("base.Hello World");
	}
}

Java源程式與編譯型執行區別: