官术网_书友最值得收藏!

2.1 Java核心知識

本節主要講解Java中的基本數據類型、局部變量和成員變量、運算符和表達式以及流程控制語句等基礎知識。讀者只有牢牢掌握這些基礎知識才能在面試及筆試中應對自如。

2.1.1 數據類型

Java中有兩大數據類型,分別為基本數據類型和引用數據類型。

基本數據類型如表2-1所示。

表2-1 基本數據類型

引用數據類型包括類、接口、數組等,這些在之后的章節中將會介紹到。

在Java中的數據類型的轉換有兩種方法:

(1)自動類型轉換:編譯器自動完成類型轉換,不需要在程序中編寫代碼。

(2)強制類型轉換:強制編譯器進行類型轉換,必須在程序中編寫代碼。

由于在基本數據類型中boolean類型不是數字型,所以基本數據類型的轉換是除了boolean類型以外的其他7種類型之間的轉換。

自動轉換類型的情況如下:

(1)整數類型之間可以相互轉換,如byte類型的數據可以賦值給short、int、long類型的變量;short、char類型的數據可以賦值給int、long類型的變量;int類型的數據可以賦值給long類型的變量。

(2)整數類型轉換為float類型,如byte、char、short、int類型的數據可以賦值給float類型的變量。

(3)其他類型轉換為double類型,如byte、char、short、int、long、float類型的數據可以賦值給double類型的變量。

1)自動類型轉換規則:從存儲范圍小的類型到存儲范圍大的類型,即byte→short(char)→int→long→float→double。

注意在整數之間進行類型轉換時,數值不發生改變,而將整數類型(尤其是比較大的整數類型)轉換成小數類型時,由于存儲方式的不同,可能存在數據精度的損失。

2)強制類型轉換規則:從存儲范圍大的類型到存儲范圍小的類型,即double→float→long→int→short(char)→byte。

語法格式:

    (type)value

其中,type是要強制類型轉換后的數據類型。如:

    int a = 123
    byte b = (byte)a

2.1.2 常量和變量

1.常量

常量即在程序運行過程中一直不會改變的量,常量在整個程序中只能被賦值一次,并且一旦被定義,它的值就不能再被改變。聲明常量的語法格式如下:

    final 數據類型 變量名[=值]

常量的名稱通常使用大寫字母。常量標識符可由任意順序的大小寫字母、數字、下畫線(_)和美元符號($)等組成,標識符不能以數字開頭,也不能是Java中的保留字和關鍵字。

當常量用于一個類的成員變量時,必須給常量賦值,否則會出現編譯錯誤。

Java還允許使用一種特殊形式的字符常量值來表示一些難以用一般字符表示的字符,這種特殊形式的字符是以“\”開頭的字符序列,稱為轉義字符。

Java中常用的轉義字符及含義如表2-2所示。

表2-2 轉義字符及含義

2.變量

變量代表程序的狀態,程序通過改變變量的值來改變整個程序的狀態。

在程序中聲明變量的語法格式如下:

    數據類型 變量名稱;

注意數據類型和變量名稱之間需要使用空格隔開,空格的個數不限,但是至少需要一個;語句使用“;”作為結束。

1)變量的命名規則

(1)變量名必須是一個有效的標識符。

(2)變量名不可以使用Java中的關鍵字。

(3)變量名不能重復。

(4)選擇有意義的單詞作為變量名。

2)變量的分類

根據作用域的不同,一般將變量分為成員變量和局部變量。

(1)成員變量

成員變量又分為全局變量和靜態變量。

全局變量不需要使用static關鍵字修飾,而靜態變量則需要使用static關鍵字進行修飾。

全局變量在類定義后就已經存在,占用內存空間,可以通過類名來訪問,因此不需要實例化。

(2)局部變量

局部變量是指在方法或者方法代碼塊中定義的變量,其作用域是其所在的代碼塊。可分為以下三種:

①方法參數變量(形參):在整個方法內有效。

②方法局部變量(方法內定義):從定義這個變量開始到方法結束這一段時間內有效。

③代碼塊局部變量(代碼塊內定義):從定義這個變量開始到代碼塊結束這一段時間內有效,常用于try…catch代碼塊中。

2.1.3 運算符和表達式

程序是由許多語句組成的,而語句的基本單位就是表達式與運算符。表達式是由操作數與運算符組成:操作數可以是常量、變量,也可以是方法,而運算符就是數學中的運算符號,如“+”“-”“*”“/”“%”等。

1.算術運算符

常用的算術運算符及含義如表2-3所示。

表2-3 算術運算符及含義

2.關系運算符

關系運算符也稱比較運算符,是指對兩個操作數進行關系運算的運算符,主要用于確定兩個操作數之間的關系。常用的關系運算符及含義如表2-4所示。

表2-4 關系運算符及含義

3.邏輯運算符

邏輯運算符用來把各個運算的變量連接起來,組成一個邏輯表達式,判斷編程中某個表達式是否成立,判斷的結果是true或false。常用的邏輯運算符及含義如表2-5所示。

表2-5 邏輯運算符及含義

4.賦值運算符

賦值運算符就是為各種不同類型的變量賦值,簡單的賦值運算符由等號(=)來實現,即是把等號右邊的值賦給等號左邊的變量。常用的賦值運算符及含義如表2-6所示。

表2-6 賦值運算符及含義

5.位運算符

位運算符主要用來對操作數為二進制的位進行運算,按位運算表示按每個二進制位來進行運算,其操作數的類型是整數類型以及字符型,運算的結果是整數類型。常用的位運算符及含義如表2-7所示。

表2-7 位運算符及含義

2.1.4 流程控制語句

1.順序語句

順序語句的執行順序是自上而下,依次執行。

2.條件語句

1)if語句

    if(條件表達式){
        條件表達式成立時執行該語句;
    }

如果條件表達式的值為true,則執行if語句中的代碼塊,否則執行if語句塊后面的代碼。

2)if…else語句

    if(條件表達式){
        條件表達式成立時執行該語句;
    }else{
        條件表達式不成立時執行該語句;
    }

3)if嵌套語句

3.選擇語句

switch語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。

(1)switch語句中的變量類型可以是:byte、short、int或者char。

(2)switch語句可以有多個case語句。每個case后面跟一個要比較的值和冒號。

(3)case語句中值的數據類型必須與變量的數據類型相同,而且只能是常量或者字面常量。

(4)當變量的值與case語句的值相等時,case語句之后的語句開始執行,直到break語句出現才會跳出switch語句。

(5)當出現break語句時,switch語句終止。程序跳轉到switch語句后面的語句執行。case語句不包含break語句。如果沒有break語句出現,程序會繼續執行下一條case語句,直到出現break語句為止。

(6)switch語句可以包含一個default分支,該分支必須是switch語句的最后一個分支。default分支在沒有case語句的值和變量值相等的時候執行。default分支不需要break語句。

4.循環語句

1)while語句

while語句的執行過程是先計算表達式的值,若表達式的值為真(非零),則執行循環體中的語句,繼續循環;否則退出該循環,執行while語句后面的語句。循環體可以是一條語句或空語句,也可以是復合語句。

    while(循環條件){
        循環體;
        }

2)do…while語句

    do{
        循環體;
        }while(循環條件)

注意while語句屬于先判斷后執行,而do…while語句先執行一次,而后再進行判斷。do…while語句和while語句能實現同樣的功能。然而在程序運行過程中,這兩種語句還是有差別的。如果循環條件在循環語句開始時就不成立,那么while語句的循環體一次都不會執行,而do…while語句的循環體還是會執行一次。

3)for語句

    for (初值;判斷條件;賦值增減量)
    {
        語句1 ;
        …
        語句n ;
    }

for關鍵字后面()中包括了三部分內容:初始化表達式、循環條件和操作表達式,它們之間用;分隔,{}中的執行語句為循環體。

(1)最先執行初始化步驟。可以聲明一種類型、初始化一個或多個循環控制變量,也可以是空語句。

(2)判斷條件。如果為true,則循環體被執行。如果為false,則循環終止,開始執行循環體后面的語句。

(3)執行一次循環后,更新循環控制變量。

(4)再次檢測判斷條件。循環執行上面的步驟。

主站蜘蛛池模板: 铁力市| 甘南县| 喀喇| 秦皇岛市| 关岭| 肃宁县| 龙岩市| 祥云县| 玛曲县| 炎陵县| 宝鸡市| 易门县| 鄂托克前旗| 勃利县| 宿州市| 甘肃省| 天柱县| 福清市| 文昌市| 沿河| 兴化市| 商丘市| 万安县| 伊宁市| 兴城市| 宝清县| 苏尼特左旗| 临颍县| 合肥市| 泰安市| 图们市| 温州市| 合山市| 枞阳县| 张北县| 西藏| 巩义市| 酒泉市| 洛隆县| 即墨市| 涪陵区|