【Java筆記】(二)Java基礎語法

2020-08-12 23:55:20

Java基礎語法

1 java 的基本語法格式

  1. 類名必須和檔名一致
  2. public:存取修飾符
  3. class:定義類的關鍵字
  4. 類名:首字母大寫,不要使用拼音或者中文,駝峯式命名法,每個單詞的首字母大寫
  5. main方法是java程式的入口,需要執行的程式碼必須放到main方法裏面,後期學了javaee用的不是太多了
  6. java語言嚴格區分大小寫 int a; int A;
  7. Java方法由一條條語句構成,每個語句以「;」結束。
  8. 大括號都是成對出現的,缺一不可。
  9. 一個java檔案裏面可以定義多個類,但是隻能有一個類名的存取修飾許可權爲public

2 關鍵字

2.1 關鍵字的定義和特點

定義:被Java語言賦予了特殊含義,用做專門用途的字串(單詞)
java給我們定義一些特殊單詞,每個關鍵字都有自己獨有的功能

特點:

  1. 全是小寫
  2. 關鍵字不能當做普通的識別符號

2.2 常見關鍵字

在这里插入图片描述在这里插入图片描述

3 識別符號

3.1 定義

自定義的類,方法名,包名,變數名,介面名…這些統稱識別符號

  1. 字母,數位,下劃線 $
  2. 不能以數位開頭
  3. 不能是關鍵字,或者包含特殊字元
  4. 定義方法名和變數名首字母小寫,駝峯式命名法,如果定義常數,全部大寫

3.2 通用規範

1.包名所有字母一律小寫。例如:com.hpe.example。
(詳細的命名規則見這篇博文Java包的命名規範
2. 類名和介面名每個單詞的首字母都要大寫。例如:ArrayList、Iterator。
3. 常數名所有字母都大寫,單詞之間用下劃線連線。例如:DAY_OF_MONTH。
4. 變數名和方法名的第一個單詞首字母小寫,從第二個單詞開始每個單詞首字母大寫。例如:lineNumber、getLineNumber。
5. 在程式中,應該儘量使用有意義的英文單詞來定義識別符號,使得程式便於閱讀。例如:使用userName表示使用者名稱,password表示密碼。

4 變數

4.1 變數的概念

  1. 記憶體中的一個儲存區域,該區域有自己的名稱(變數名)和型別(數據型別)
  2. 必須先宣告,後使用
  3. 該區域的數據可以在同一型別範圍內不斷變化

4.2 語法格式

    變數型別 變數名 [= 初始值]; 

4.3 分類

  • 按被宣告的位置劃分:
    • 成員變數:方法外部、類的內部定義的變數
    • 區域性變數:方法或語句塊內部定義的變數
  • 按所屬的數據型別劃分:
    • 基本數據型別變數
    • 參照數據型別變數
      在这里插入图片描述

    注意:類外面(類對應的大括號外面)不能有變數的宣告

4.3.1 整數型別

整數型別有固定的表示範圍和長度,不受具體操作系統的影響,保證Java程式的可移植性

型別 佔用儲存空間 表數範圍
byte 1位元組 128-128~127127
short 2位元組 215-2^{15}~21512^{15}-1
int 4位元組 231-2^{31}~23112^{31}-1
long 8位元組 263-2^{63}~26312^{63}-1

整數型別常數預設爲int型,宣告 long 型常數须後加‘l’(小寫L) 或‘L’。

4.3.2 浮點型別

浮點型別有固定的表示範圍和長度

型別 佔用儲存空間 表數範圍
float 4位元組 -3.403E38 ~ 3.403E38
double 8位元組 -1.798E308 ~ 1.798E308

浮點型常數預設爲 double 型,宣告 float 型常數,须後加‘f’ 或 ‘F’。

浮點型常數的兩種表示形式:

  • 十進制數形式:如:5.12 512.0f .512 (必須有小數點)
  • 科學計數法形式:如:5.12e2 512E2 100E-2
4.3.3 字元型別

用於儲存一個單一字元。

型別 佔用儲存空間
char 2位元組
char c = 'a';  // 爲一個char型別的變數賦值字元'a'
char ch = 97; // 爲一個char型別的變數賦值整數97,相當於賦值字元
4.3.4 布爾型別

適用於邏輯運算,一般用於程式流程控制。

boolean型別數據只允許取值true和false,不可以0或非0的整數替代true和false

4.3.5 String型別

用於儲存一串字串

4.3.6 變數數據型別舉例
public class TestType {
       public static void main(String[ ] args) {
              double score = 99.5;    
              String name = "張三";
              char sex = '男';
    
   	       System.out.println("本次考試成績最高分: " + score);
	       System.out.println("最高分得主: " + name);
	       System.out.println("性別: " + sex);
       }

4.4 變數的型別轉換

根據轉換方式的不同,數據型別轉換可分爲兩種:自動型別轉換和強制型別轉換。

4.4.1 自動(隱式)型別轉換

一個型別取值範圍小的數值直接賦給另一個取值範圍大的數據型別變數時,自動進行轉換,不需要顯式地宣告。

在这里插入图片描述

  • 有多種型別的數據混合運算時,系統首先自動將所有數據轉換成容量最大的那種數據型別,然後再進行計算。
  • byte,short,char計算時先轉換爲int型。
  • 當把任何基本型別的值和字串值進行連線運算時(+),基本型別的值將自動轉化爲字串型別
4.4.2 強制(顯式)型別轉換

當兩種型別彼此不相容,或者目標型別取值範圍小於源型別時,不能自動轉換,需要顯式地宣告。

目標型別 變數名 = (目標型別)值;

注意:將容量大的數據型別轉換爲容量小的數據型別,使用時要加上強制轉換符(),但可能造成精度降低或溢位。

字串轉換爲基本數據型別,需要通過基本型別對應的包裝類提供的parseXXX方法。如:

String a =43; 
int i = Integer.parseInt(");

4.5 變數作用域

變數需要在它的作用範圍內纔可以被使用,這個作用範圍稱爲變數的作用域。

在这里插入图片描述

5 常數

固定不變的特殊變數,有且只能進行一次賦值。

final 常數型別 常數名 [= 初始值];

6 跳脫字元

6.1 跳脫符 \

  • 定義:用來跳脫緊隨其後的一個字元。
  • 跳脫後的字元通常用於表示一個不可見的字元或具有特殊含義的字元,例如「\n」表示換行。

6.2 常見跳脫字元

  • \r :表示回車,將遊標定位到當前行的開頭,不會跳到下一行。
  • \n :表示換行,換到下一行的開頭。
  • \t :表示製表符,將遊標移到下一個製表符的位置,就像在文件中用Tab鍵一樣。
  • \\ :表示反斜槓跳脫字元,由於在Java程式碼中的斜槓(\)是跳脫符,因此需要表示字面意義上的\,就需要使用雙斜槓\\。

7 運算子

用於告訴程式執行特定運算或邏輯操作的符號。

7.1 算術運算子

用來處理四則運算的符號。

在这里插入图片描述

  • 在進行自增(++)和自減(–)的運算時,如果運算子(++或–)放在運算元的前面則是先進行自增或自減運算,再進行其他運算。反之,如果運算子放在運算元的後面則是先進行其他運算再進行自增或自減運算。

  • 在進行除法運算時,當除數和被除數都爲整數時,得到的結果也是一個整數;如果除法運算有小數參與,得到的結果會是一個小數

  • 在進行取模(%)運算時,運算結果的正負取決於被模數(%左邊的數)的符號,與模數(%右邊的數)的符號無關。

7.2 賦值運算子

將常數、變數或表達式的值賦給某一個變數。

在这里插入图片描述

  • 在Java中可以通過一條賦值語句對多個變數進行賦值。

  • 在使用+=、-=、*=、/=、%= 賦值運算子時,需要進行的強制型別轉換會自動完成,程式不需要做任何顯式地宣告。

7.3 比較運算子

用來對兩個數值或變數進行比較,其結果是布爾型別的true或false

在这里插入图片描述

7.4 邏輯運算子

是用於對布爾型別的值或表達式進行操邏輯判斷的符號。其返回值型別是布爾型別

在这里插入图片描述

  • &」和「&&」的區別:在使用「&」進行運算時,不論左邊爲true或者false,右邊的表達式都會進行運算。如果使用「&&」進行運算,當左邊爲false時,右邊的表達式不會進行運算,因此「&&」被稱作短路與。
  • 運算子「|」和「||」都表示或操作,當運算子任何一邊的運算元或表達式爲true時,其結果爲true,當兩邊的值都爲false時,其結果才爲false。同與操作類似,「||」表示短路或,當運算子「||」的左邊爲true時,右邊的表達式不會進行運算。
  • 運算子「^」表示互斥或操作,當運算子兩邊的布爾值相同時(都爲true或都爲false),其結果爲false。當兩邊布爾值不相同時,其結果爲true。

7.5 條件運算子

也稱作三元運算子(或三目運算子),由符號「? :」組合構成。

對布爾型別的表達式判斷,如果爲true,就執行冒號「:」前面的表達式,否者執行後面的表達式。

(boolean_expr) ? true_statement : false_statement;

7.6 運算子的優先順序

在这里插入图片描述