天天看點

Java基礎-005-Java基礎文法Java 基礎文法

Java 基礎文法

Java 辨別符

辨別符可以簡單地了解為一個名字,用來辨別類名、變量名、方法名、數組名、檔案名的有效字元序列。

辨別符雖然可以任意取名,但是也要遵循一定的規則,辨別符的幾點命名規則如下所示:

  • 所有的辨別符都應該以字母(A-Z 或者 a-z),美元符($)、或者下劃線(_)開始
  • 首字元之後可以是字母(A-Z 或者 a-z),美元符($)、下劃線(_)或數字的任何字元組合
  • 辨別符不能是Java的關鍵字和保留字
  • 辨別符是大小寫敏感的,如果兩個辨別符的字母相同但是大小寫不同,就是不同的辨別符
  • 合法辨別符舉例:age、$salary、_value、__1_value
  • 非法辨別符舉例:123abc、-salary
  • Java語言使用Unicode标準字元集,最多可以識别65535個字元。是以,Java語言中的字母可以是Unicode字元集中的任何字元,包括拉丁字母、漢字、日文和其他許多語言中的字元。

Java 關鍵字

類别 關鍵字 說明
通路控制 private 私有的
\ protected 受保護的
\ public 公共的
類、方法和變量修飾符 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
Java基礎-005-Java基礎文法Java 基礎文法

Java 變量

Java 中主要有如下幾種類型的變量

  • 類變量 (靜态變量):獨立于方法之外的變量,用 static 修飾。
  • 成員變量 (非靜态變量):獨立于方法之外的變量,不過沒有 static 修飾。
  • 局部變量:類的方法中的變量。

聲明變量

在程式設計中,變量的使用是一個十分重要的環節,定義一個變量,就是要告訴編譯器(compiler)這個變量屬于哪一種資料類型,這樣編譯器才知道需要配置多少空間,以及能存放什麼樣的資料。變量都有一個變量名,變量名必須是合法的辨別符,記憶體空間内的值就是變量值。在聲明變量時可以是不給予指派,也可以是直接賦給初值。

聲明常量

在程式運作過程中一直不會改變的量稱為常量(constant),通常也被稱為“final變量”。常量在整個程式中隻能被指派一次。在為所有對象共享的值時,常量是非常有用的。

Java語言支援一些特殊的轉義字元序列

轉移字元對應的英文是escape character , 轉義字元串(Escape Sequence)字母前面加上捺斜線""來表示常見的那些不能顯示的ASCII字元.稱為轉義字元.如\0,\t,\n等,就稱為轉義字元,因為後面的字元,都不是它本來的ASCII字元意思了。
轉義字元 意義 ASCII碼值(十進制)
\a 響鈴(BEL) 007
\b 倒退(BS) ,将目前位置移到前一列 008
\f 換頁(FF),将目前位置移到下頁開頭 012
\n 換行(LF) ,将目前位置移到下一行開頭 010
\r 回車(CR) ,将目前位置移到本行開頭 013
\t 水準制表(HT) (跳到下一個TAB位置) 009
\v 垂直制表(VT) 011
\\ 代表一個反斜線字元’’\’ 092
\’ 代表一個單引号(撇号)字元 039
\" 代表一個雙引号字元 034
\0 空字元(NULL) 000
\ddd 1到3位八進制數所代表的任意字元 三位八進制
\xhh 1到2位十六進制所代表的任意字元 二位十六進制
注意:區分,斜杠:"/" 與 反斜杠:"" ,此處不可互換
Java基礎-005-Java基礎文法Java 基礎文法

點的轉義:. ==> u002E

美元符号的轉義:$ ==> u0024

乘方符号的轉義:^ ==> u005E

左大括号的轉義:{ ==> u007B

左方括号的轉義:[ ==> u005B

左圓括号的轉義:( ==> u0028

豎線的轉義:| ==> u007C

右圓括号的轉義:) ==> u0029

星号的轉義:* ==> u002A

加号的轉義:+ ==> u002B

問号的轉義:? ==> u003F

反斜杠的轉義:/==> u005C

變量的有效範圍

變量的有效範圍是指程式代碼能夠通路該變量的區域,若超出變量所在區域通路變量則編譯時會出現錯誤。在程式中,一般會根據變量能夠通路的區域将變量分為“成員變量”和“局部變量”。

Java 基本資料類型

Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字元類型,還有一種布爾型。
Java基礎-005-Java基礎文法Java 基礎文法

整數類型

byte:
  • byte 資料類型是8位、有符号的,以二進制補碼表示的整數;
  • 最小值是 -128(-2^7);
  • 最大值是 127(2^7-1);
  • 預設值是 0;
  • byte 類型用在大型數組中節約空間,主要代替整數,因為 byte 變量占用的空間隻有 int 類型的四分之一;
short:
  • short 資料類型是 16 位、有符号的以二進制補碼表示的整數
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 - 1);
  • Short 資料類型也可以像 byte 那樣節省空間。一個short變量是int型變量所占空間的二分之一;
  • 預設值是 0;
int:
  • int 資料類型是32位、有符号的以二進制補碼表示的整數;
  • 最小值是 -2,147,483,648(-2^31);
  • 最大值是 2,147,483,647(2^31 - 1);
  • 一般地整型變量預設為 int 類型;
  • 預設值是 0 ;
long:
  • long 資料類型是 64 位、有符号的以二進制補碼表示的整數;
  • 最小值是 -9,223,372,036,854,775,808(-2^63);
  • 最大值是 9,223,372,036,854,775,807(2^63 -1);
  • 這種類型主要使用在需要比較大整數的系統上;
  • 預設值是 0L;"L"理論上不分大小寫,但是若寫成"l"容易與數字"1"混淆,不容易分辯。是以最好大寫。

浮點類型

float:
  • float 資料類型是單精度、32位、符合IEEE 754标準的浮點數;
  • float 在儲存大型浮點數組的時候可節省記憶體空間;
  • 預設值是 0.0f;
  • 浮點數不能用來表示精确的值,如貨币;
double:
  • double 資料類型是雙精度、64 位、符合IEEE 754标準的浮點數;
  • 浮點數的預設類型為double類型;
  • double類型同樣不能表示精确的值,如貨币;
  • 預設值是 0.0d;

字元類型

char:
  • char類型是一個單一的 16 位 Unicode 字元;
  • 最小值是 \u0000(即為0);
  • 最大值是 \uffff(即為65,535);
  • char 資料類型可以儲存任何字元;

布爾類型

boolean:
  • boolean資料類型表示一位的資訊;
  • 隻有兩個取值:true 和 false;
  • 這種類型隻作為一種标志來記錄 true/false 情況;
  • 預設值是 false;

自動類型轉換

隐式類型轉換

Java中8種基本類型可以進行混合運算,不同類型的資料在運算過程中,首先會自動轉換為同一類型,再進行運算。資料類型根據占用存儲空間的大小分為高低不同的級别,占用空間小的級别低,占用空間大的級别高,自動類型轉換遵循低級到進階轉換的規則。

整型、實型(常量)、字元型資料可以混合運算。運算中,不同類型的資料先轉化為同一類型,然後進行運算。轉換從低級到進階。

低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
Java基礎-005-Java基礎文法Java 基礎文法

顯式類型轉換

當把高精度的變量的值賦給低精度的變量時,必須使用顯式類型轉換運算(又稱強制類型轉換)。

文法如下所示:(類型名)要轉換的值

例如:byte b = (byte)123;

運算符

  1. 算術運算符
  2. 關系運算符(比較運算符)
  3. 位運算符
  4. 邏輯運算符
  5. 指派運算符
  6. 其他運算符

算術運算符

Java中的算術運算符主要有+(加号)、-(減号)、*(乘号)、/(除号)和%(求餘),它們都是二進制運算符。

自增自減運算符

自增、自減運算符是單目運算符,可以放在操作元之前,也可以放在操作元之後。操作元必須是一個整型或浮點型變量。放在操作元前面的自增、自減運算符,會先将變量的值加1(減1),然後再使該變量參與表達式的運算;放在操作元後面的自增、自減運算符,會先使變量參與表達式的運算,然後再将該變量加1(減1) 。
  1. 自增(++)自減(–)運算符是一種特殊的算術運算符,在算術運算符中需要兩個操作數來進行運算,而自增自減運算符是一個操作數。
  2. 字首自增自減法(++a,–a): 先進行自增或者自減運算,再進行表達式運算。
  3. 字尾自增自減法(a++,a–): 先進行表達式運算,再進行自增或者自減運算

關系運算符(比較運算符)

運算符 描述
== 檢查如果兩個操作數的值是否相等,如果相等則條件為真。
!= 檢查如果兩個操作數的值是否相等,如果值不相等則條件為真。
> 檢查左操作數的值是否大于右操作數的值,如果是那麼條件為真。
< 檢查左操作數的值是否小于右操作數的值,如果是那麼條件為真。
>= 檢查左操作數的值是否大于或等于右操作數的值,如果是那麼條件為真。
<= 檢查左操作數的值是否小于或等于右操作數的值,如果是那麼條件為真。

位運算符

操作符 描述
如果相對應位都是1,則結果為1,否則為0
| 如果相對應位都是 0,則結果為 0,否則為 1
^ 如果相對應位值相同,則結果為0,否則為1
按位取反運算符翻轉操作數的每一位,即0變成1,1變成0。
<< 按位左移運算符。左操作數按位左移右操作數指定的位數。
>> 按位右移運算符。左操作數按位右移右操作數指定的位數。
>>> 按位右移補零操作符。左操作數的值按右操作數指定的位數右移,移動得到的空位以零填充。

邏輯運算符

操作符 描述
&& 稱為邏輯與運算符。當且僅當兩個操作數都為真,條件才為真。
| | 稱為邏輯或操作符。如果任何兩個操作數任何一個為真,條件為真。
稱為邏輯非運算符。用來反轉操作數的邏輯狀态。如果條件為true,則邏輯非運算符将得到false。

指派運算符

操作符 描述
= 簡單的指派運算符,将右操作數的值賦給左側操作數
+ = 加和指派操作符,它把左操作數和右操作數相加指派給左操作數
- = 減和指派操作符,它把左操作數和右操作數相減指派給左操作數
* = 乘和指派操作符,它把左操作數和右操作數相乘指派給左操作數
/ = 除和指派操作符,它把左操作數和右操作數相除指派給左操作數
(%)= 取模和指派操作符,它把左操作數和右操作數取模後指派給左操作數
<< = 左移位指派運算符
>> = 右移位指派運算符
&= 按位與指派運算符
^ = 按位異或指派操作符
| = 按位或指派操作符

其他運算符

條件運算符(?:)

三元運算符是Java中唯一一個三目運算符,其操作元有三個,第一個是條件表達式,其餘的是兩個值,條件表達式成立時運算取第一個值,不成立時取第二個值,示例代碼如下所示:

boolean b = 20 < 45 ? true : false;

instanceof 運算符

該運算符用于操作對象執行個體,檢查該對象是否是一個特定類型(類類型或接口類型)。

instanceof運算符使用格式如下:

( Object reference variable ) instanceof  (class/interface type)
           

如果運算符左側變量所指的對象,是操作符右側類或接口(class/interface)的一個對象,那麼結果為真。

String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 類型,是以傳回真
           

運算符優先級

Java基礎-005-Java基礎文法Java 基礎文法