JavaSE的基礎語法

qq_43677736發表於2020-10-02

JavaSE的基礎語法

1. 語言的發展

機器語言----->組合語言------>高階程式設計語言

1.1 機器語言

***機器語言***是用二進位制程式碼表示的一種機器指指令系統的集合,裡邊就包含 0 和 1,能被計算機能直接識別和執行。但它們難於辨別和記憶,給整個產業的發展帶來了 障礙
每一個計算機只能理解他自己的機器語言。機器語言對於計算機來說就是自然語言 了,由計算機硬體的設計者定義。機器語言通常由數字串組成(終被簡化成 01),對於人類來說,機器語言過於繁瑣。

1.2 組合語言

為了程式設計的方便,以及解決更加複雜的問題。程式設計師開始使用英文的縮寫的助記符 來表示基本的計算機操作。這些助記符構成了組合語言的基礎。
在組合語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操 作數的地址,也稱為符號語言。

1.3 高階程式語言

對於簡單的任務,組合語言可以勝任。但是隨著計算機的發展,滲透到了工作生活 的更多的方面,一些複雜的任務出現了,組合語言就顯得有限力不從心(應該說是 程式設計師使用匯編語言解決複雜問題出現了瓶頸)。於是,出現了高階語言。像 c,c++,java都是高階語言。高階語言允許程式設計師使用接近日常英語的指令的編寫程 序。
高階語言是一種指令集的體系。在這種語言下,其語法和結構更類似漢字或者普通 英文,且由於遠離對硬體的直接操作,使得一般人經過學習之後都可以程式設計。C、 C++、Java、Python、Ruby…

高階程式語言,作為使用者層面的程式設計工具,使用者並不需要去了解硬體的結構,而是 去用邏輯的語言去實現想要的目標,但是因為高階程式語言的架構高於彙編,所以 不能編寫直接訪問硬體資源的系統程式。而且都需要經過中間的 翻譯 過程。

2. Java的特性和優勢

簡單性:
就是c++語法的純淨版。沒有標頭檔案,指標運算,結構,聯合,操作符過載,虛基 類等等。由於語法基於c,因此學習起來完全不費力。

物件導向:
物件導向是一種程式設計技術,他將重點放在資料(即物件)和物件之間的介面 上。

可移植性:
J2EE是J2SE的擴充套件,增加了用於伺服器開發的類庫。如:javax.servlet Enterprise JavaBeans 是一種用來代表企業邏輯的軟體元件;JDBC則是讓程式人員能直 接在Java內使用的SQL的語法來訪問資料庫內的資料;Servlet能夠延伸伺服器的功能,通過 請求-響應的模式來處理客戶端的請求;JSP是一種可以將Java程式程式碼內嵌在網頁內的技 術;另外還有包括XML、email及transaction等各種應用於伺服器端的API。
這個版本是Java平臺的核心,它提供了非常豐富的API來開發一般個人計算機上的應用程式, 包括使用者介面AWT及Swing,網路功能與國際化、影像處理能力以及輸入輸出支援等。在互聯 網上大放異彩的Applet也屬於這個版本。
J2ME是J2SE的內伸,包含J2SE的一部分核心類,也有自己的擴充套件類,增加了適合微小裝置的 類庫:javax.microedition.io.*等。
這是JAVA的一個重要的優勢。JAVA程式碼或者說位元組碼、二進位制碼可以跨平臺的移 植,而不用管具體的作業系統和硬體環境。JAVA本身就是面向網路的,只有在網路 環境中才能顯示出他的優勢,比如:現在我有一個網路環境,要讓我的筆記本和手 機互動,筆記本環境是windows發出一個讓手機定時錄音的JAVA程式碼,手機只有簡 單Linux核心作業系統,照樣可以完美的執行這個程式碼。
“一次編寫,隨處執行”:“write once, run anywhere”
JAVA在設計時就很注重移植和跨平臺性。比如:JAVA的Int永遠都是32位。不像 c++可能是16,32,可能是根據編譯器廠商規定的變化。這樣的話程式的移植就會 非常麻煩。

高效能:
JIT(JUST IN TIME)即時編譯。將一些“熱點”位元組碼編譯成本地機器碼,並將結果緩 存起來,在需要的時候重新呼叫。這樣的話,使JAVA程式的執行效率大大提高,某 些程式碼甚至接待c++的效率。隨著這種技術的一天天完善,也許有一天會超越編譯 程式碼的效率。

動態性:
就是在需要時將某些程式碼新增到正在執行的程式中。反射機制。當需要把某些程式碼 新增到正在執行的程式中時,動態性是一個非常重要的特性。Java的動態特性是其 物件導向設計方法的擴充套件。它允許程式動態地裝入執行過程中所需要的類,這是 C++語言進行物件導向程式設計所無法實現的。

多執行緒
多執行緒的使用可以帶來更好的互動響應和實時行為。多執行緒的簡單性是Java成為主 流伺服器端開發語言的主要原因之一。

安全性
Java適合於網路/分散式環境,為了達到這個目標,在安全性方面投入了很大的精 力,使Java可以構建防病毒,防篡改的系統。

健壯性
Java是一種健壯的語言,吸收了C/C++ 語言的優點,但去掉了其影響程式健壯性的 部分(如:指標、記憶體的申請與釋放等)。Java程式不可能造成計算機崩潰。Java 系統仔細檢測對記憶體的每次訪問,確認它是合法的,而且不致引起任何問題。不 過,即使Java程式也可能有錯誤。如果出現某種出乎意料之事,程式也不會崩潰, 而是把該例外拋棄。再通過異常處理機制,程式就會發現這類例外,並加以處理。

3. Java基礎語法-關鍵字

Java關鍵字是Java語言保留供內部使用的,如 class 用於定義類。 關鍵字也可以稱 為 保留字,它們的意思是一樣的。是被系統徵用的特殊單詞(識別符號),而且是被廣大 程 序員所認知的。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-czpZ0RLH-1601605090564)(C:\Users\楊勝輝\AppData\Local\Temp\1601602531653.png)]

4. Java基礎語法-識別符號

就是給類,介面,方法,變數等起名字的字元序列。用來查詢、定位、標明、唯一 確認內容。 表示類名的識別符號用大寫字母開始。如: Man , GoodMan 表示方法和 變數的識別符號用小寫字母開始,後面的描述性詞以大寫開始。 eat() , eatFood()
Java 識別符號有如下命名規則:
識別符號必須以字母、下劃線_ 、美元符開頭。 識別符號其它部分可以是字母、下劃線“_”、美元符“ ”和數字的任意組合。 Java 識別符號大小寫敏感,且長度無限制。 不可以是Java的關鍵字
JAVA不採用通常語言使用的ASCII字符集,而是採用unicode這樣的標準的國際字元 集。因此,這裡的字母的含義:英文、漢字等等。(不建議大家使用漢字來定義標 識符!)

5. 命名規則(規範)

  • 所有變數、方法、類名:見名知意

  • 類成員變數:首字母小寫和駝峰原則 : monthSalary

  • 區域性變數:首字母小寫和駝峰原則

  • 常量:大寫字母和下劃線:MAX_VALUE

  • 類名:首字母大寫和駝峰原則: Man, GoodMan

  • 方法名:首字母小寫和駝峰原則: run(), runRun()

6. 基本資料型別

  • Java是一種強型別語言,每個變數都必須宣告其型別。
  • 型別 佔用儲存空間 表數範圍
    • byte 1位元組 -128~127 short 2位元組 -2^15 ~ 2^15-1 (-32768~32767)。
    • int 4位元組 -2^31 ~ 2^31-1 (-2147483648~2147483647) 約21億 。
    • long 8位元組 -2^63 ~ 2^63-1。
    • float 4位元組 -3.403E38~3.403E38
    • double 8位元組 -1.798E308~1.798E308
    • char 2位元組
    • boolean 一位
  • Java的資料型別分為兩大類:基本型別(primitive type)和引用型別 (reference type)。
  • Java中定義了3類8種基本資料型別
    • 邏輯型-boolean
    • 文字型- char
    • 數值型- byte, short, int, long, float, double

7. 運算子

Java 語言支援如下運算子:

  • 算術運算子: +,-,*,/,%,++,-
  • 賦值運算子 =
  • 關係運算子: >,<,>=,<=,==,!=, instanceof
  • 邏輯運算子: &&,||,! (兩邊必須時Boolean型別的)
  • 位運算子: &,|,^,~ , >>,<<,>>> (兩邊可以是Boolean型別的,也可以是int型別的)
  • 條件運算子 ?:
  • 擴充套件賦值運算子:+=,-=,=,/=

8. 自動型別轉換

  • 自動型別轉換:容量小的資料型別可以自動轉換為容量大的資料型別。在圖 中,黑色的實線表示無資料丟失的自動型別轉換,而紅色的虛線表示在轉換時 可能會精度的損失。
  • 特例: 可以將整型常量直接賦值給byte, short, char等型別變數,而不需要進行強 制型別轉換,只要不超出其表數範圍

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-JLzo10oo-1601605090576)(C:\Users\楊勝輝\AppData\Local\Temp\1601604475744.png)]

9. 強制型別轉換

  • 強制型別轉換(Cast): 強制型別轉換,又被稱為造型,用於顯式的轉換一個 數值的型別. 在有可能丟失資訊的情況下進行的轉換是通過造型來完成的,但可 能造成精度降低或溢位。
  • 強制型別轉換的語法格式: (type)var ,運算子“()”中的type表示將值var想要轉 換成的目標資料型別。
double x  = 3.14;
int nx = (int)x;  //值為3
char c = 'a'; 
int d = c+1; 
System.out.println(d);
System.out.println((char)d);