最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java運(yùn)算符與流程控制之全類型運(yùn)算符用法及分支?/?循環(huán)語句實(shí)戰(zhàn)指南

 更新時(shí)間:2026年01月05日 10:36:47   作者:Kidd  
這篇文章主要介紹了Java運(yùn)算符與流程控制之全類型運(yùn)算符用法及分支/循環(huán)語句實(shí)戰(zhàn)的相關(guān)資料,運(yùn)算符包括算術(shù)、關(guān)系、邏輯、賦值和三元運(yùn)算符,重點(diǎn)講解了它們的用法、優(yōu)先級(jí)和結(jié)合性,以及強(qiáng)制類型轉(zhuǎn)換的注意事項(xiàng),需要的朋友可以參考下

前言

Java 運(yùn)算符是實(shí)現(xiàn)數(shù)據(jù)運(yùn)算、邏輯判斷的核心工具,流程控制則是掌控程序執(zhí)行順序的關(guān)鍵,兩者共同構(gòu)成了 Java 程序的執(zhí)行邏輯基礎(chǔ)。本文將系統(tǒng)拆解 Java 全類型運(yùn)算符的用法、優(yōu)先級(jí),以及分支、循環(huán)語句的實(shí)戰(zhàn)場(chǎng)景,結(jié)合大量代碼示例,幫助讀者熟練掌握程序邏輯的構(gòu)建方式。

一、Java 運(yùn)算符全解析

運(yùn)算符是用于對(duì)數(shù)據(jù)進(jìn)行運(yùn)算或邏輯判斷的符號(hào),Java 中的運(yùn)算符按功能可分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、三元運(yùn)算符等,每種運(yùn)算符都有明確的語法規(guī)則和使用場(chǎng)景。

1.1 算術(shù)運(yùn)算符:實(shí)現(xiàn)數(shù)值運(yùn)算

算術(shù)運(yùn)算符用于對(duì)數(shù)值類型數(shù)據(jù)進(jìn)行加減乘除等運(yùn)算,分為基本算術(shù)運(yùn)算符和擴(kuò)展算術(shù)運(yùn)算符兩類。

(1)基本算術(shù)運(yùn)算符

包含+(加)、-(減)、*(乘)、/(除)、%(取模 / 取余),是最基礎(chǔ)的數(shù)值運(yùn)算工具。

public class ArithmeticBasicDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;
        
        // 加法運(yùn)算
        int addResult = a + b;
        System.out.println("a + b = " + addResult); // 輸出13
        
        // 減法運(yùn)算
        int subResult = a - b;
        System.out.println("a - b = " + subResult); // 輸出7
        
        // 乘法運(yùn)算
        int mulResult = a * b;
        System.out.println("a * b = " + mulResult); // 輸出30
        
        // 除法運(yùn)算:整數(shù)相除結(jié)果為整數(shù),舍棄小數(shù)部分
        int divResult1 = a / b;
        System.out.println("a / b(整數(shù)相除) = " + divResult1); // 輸出3
        
        // 除法運(yùn)算:浮點(diǎn)數(shù)相除結(jié)果為浮點(diǎn)數(shù)
        double divResult2 = (double) a / b;
        System.out.println("a / b(浮點(diǎn)數(shù)相除) = " + divResult2); // 輸出3.3333333333333335
        
        // 取模運(yùn)算:返回除法的余數(shù),符號(hào)與被除數(shù)一致
        int modResult1 = a % b;
        System.out.println("a % b = " + modResult1); // 輸出1
        
        int modResult2 = -10 % 3;
        System.out.println("-10 % 3 = " + modResult2); // 輸出-1
        
        int modResult3 = 10 % -3;
        System.out.println("10 % -3 = " + modResult3); // 輸出1
    }
}

注意事項(xiàng):

  • 整數(shù)相除時(shí),結(jié)果會(huì)自動(dòng)舍棄小數(shù)部分,如需保留小數(shù),需將其中一個(gè)操作數(shù)轉(zhuǎn)為浮點(diǎn)類型。
  • 取模運(yùn)算的結(jié)果符號(hào)與被除數(shù)一致,常用于判斷奇偶性(num % 2 == 0表示偶數(shù))、循環(huán)取余等場(chǎng)景。
  • 除數(shù)不能為 0,否則會(huì)拋出ArithmeticException異常。

(2)擴(kuò)展算術(shù)運(yùn)算符

包含++(自增)、--(自減),用于實(shí)現(xiàn)變量值的自增 1 或自減 1,分為前置運(yùn)算和后置運(yùn)算兩種形式。

public class ArithmeticExtendDemo {
    public static void main(String[] args) {
        int x = 5;
        int y = 5;
        
        // 前置自增:先自增1,再參與其他運(yùn)算
        int preIncrement = ++x;
        System.out.println("前置自增后x = " + x); // 輸出6
        System.out.println("前置自增結(jié)果 = " + preIncrement); // 輸出6
        
        // 后置自增:先參與其他運(yùn)算,再自增1
        int postIncrement = y++;
        System.out.println("后置自增后y = " + y); // 輸出6
        System.out.println("后置自增結(jié)果 = " + postIncrement); // 輸出5
        
        int m = 3;
        int n = 3;
        
        // 前置自減:先自減1,再參與其他運(yùn)算
        int preDecrement = --m;
        System.out.println("前置自減后m = " + m); // 輸出2
        System.out.println("前置自減結(jié)果 = " + preDecrement); // 輸出2
        
        // 后置自減:先參與其他運(yùn)算,再自減1
        int postDecrement = n--;
        System.out.println("后置自減后n = " + n); // 輸出2
        System.out.println("后置自減結(jié)果 = " + postDecrement); // 輸出3
    }
}

注意事項(xiàng):

  • 自增 / 自減運(yùn)算符只能作用于變量,不能作用于常量(如5++會(huì)編譯報(bào)錯(cuò))。
  • 在復(fù)雜表達(dá)式中,需注意前置和后置運(yùn)算的區(qū)別,避免邏輯錯(cuò)誤。

1.2 關(guān)系運(yùn)算符:實(shí)現(xiàn)條件判斷

關(guān)系運(yùn)算符用于判斷兩個(gè)數(shù)據(jù)之間的大小、相等關(guān)系,返回值為boolean類型(truefalse),常用于分支語句和循環(huán)語句的條件判斷。

Java 中的關(guān)系運(yùn)算符包括:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)。

public class RelationalOperatorDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        String s1 = "Java";
        String s2 = "Java";
        String s3 = new String("Java");
        
        // 數(shù)值類型的關(guān)系判斷
        System.out.println("a > b : " + (a > b)); // 輸出false
        System.out.println("a < b : " + (a < b)); // 輸出true
        System.out.println("a >= 10 : " + (a >= 10)); // 輸出true
        System.out.println("b <= 19 : " + (b <= 19)); // 輸出false
        System.out.println("a == 10 : " + (a == 10)); // 輸出true
        System.out.println("a != b : " + (a != b)); // 輸出true
        
        // 引用類型的關(guān)系判斷:== 比較的是對(duì)象地址,equals() 比較的是內(nèi)容
        System.out.println("s1 == s2 : " + (s1 == s2)); // 輸出true(字符串常量池,地址相同)
        System.out.println("s1 == s3 : " + (s1 == s3)); // 輸出false(堆內(nèi)存中不同對(duì)象,地址不同)
        System.out.println("s1.equals(s3) : " + s1.equals(s3)); // 輸出true(內(nèi)容相同)
    }
}

注意事項(xiàng):

  • 關(guān)系運(yùn)算符的結(jié)果必須是boolean類型,不能直接用于賦值(如int c = a > b;會(huì)編譯報(bào)錯(cuò))。
  • 對(duì)于引用數(shù)據(jù)類型,==比較的是對(duì)象的內(nèi)存地址,equals()方法(默認(rèn)也是比較地址,String 類重寫后比較內(nèi)容)用于比較對(duì)象的內(nèi)容。
  • 避免將浮點(diǎn)數(shù)用==比較是否相等,由于精度丟失問題,建議通過判斷兩者差值的絕對(duì)值是否小于某個(gè)極小值(如1e-6)來判斷。

1.3 邏輯運(yùn)算符:實(shí)現(xiàn)復(fù)雜條件判斷

邏輯運(yùn)算符用于對(duì)多個(gè)boolean類型的值進(jìn)行邏輯運(yùn)算,返回值仍為boolean類型,常用于組合多個(gè)關(guān)系判斷條件。

Java 中的邏輯運(yùn)算符包括:&&(短路與)、||(短路或)、!(非)、&(邏輯與)、|(邏輯或)。

(1)短路邏輯運(yùn)算符(常用)

  • &&(短路與):只有所有條件都為true時(shí),結(jié)果才為true;如果第一個(gè)條件為false,則直接返回false,不再判斷后續(xù)條件(短路特性)。
  • ||(短路或):只要有一個(gè)條件為true,結(jié)果就為true;如果第一個(gè)條件為true,則直接返回true,不再判斷后續(xù)條件(短路特性)。

(2)非短路邏輯運(yùn)算符

  • &(邏輯與):無論第一個(gè)條件是否為false,都會(huì)判斷所有條件,最終返回所有條件的與結(jié)果。
  • |(邏輯或):無論第一個(gè)條件是否為true,都會(huì)判斷所有條件,最終返回所有條件的或結(jié)果。

(3)邏輯非運(yùn)算符

  • !(非):對(duì)boolean值取反,!true返回false,!false返回true。
public class LogicalOperatorDemo {
    public static void main(String[] args) {
        int num = 15;
        
        // 短路與:num > 10 為true,繼續(xù)判斷num < 20,最終為true
        boolean shortAnd = (num > 10) && (num < 20);
        System.out.println("短路與結(jié)果:" + shortAnd); // 輸出true
        
        // 短路與:num < 10 為false,直接返回false,不執(zhí)行num++
        int temp1 = num;
        boolean shortAnd2 = (temp1 < 10) && (temp1++ > 0);
        System.out.println("短路與2結(jié)果:" + shortAnd2); // 輸出false
        System.out.println("temp1的值:" + temp1); // 輸出15(temp1++未執(zhí)行)
        
        // 邏輯與:temp1 < 10 為false,仍會(huì)執(zhí)行temp1++
        int temp2 = num;
        boolean logicAnd = (temp2 < 10) & (temp2++ > 0);
        System.out.println("邏輯與結(jié)果:" + logicAnd); // 輸出false
        System.out.println("temp2的值:" + temp2); // 輸出16(temp2++已執(zhí)行)
        
        // 短路或:num > 10 為true,直接返回true,不執(zhí)行num--
        int temp3 = num;
        boolean shortOr = (temp3 > 10) || (temp3-- < 0);
        System.out.println("短路或結(jié)果:" + shortOr); // 輸出true
        System.out.println("temp3的值:" + temp3); // 輸出15(temp3--未執(zhí)行)
        
        // 邏輯或:num > 10 為true,仍會(huì)執(zhí)行num--
        int temp4 = num;
        boolean logicOr = (temp4 > 10) | (temp4-- < 0);
        System.out.println("邏輯或結(jié)果:" + logicOr); // 輸出true
        System.out.println("temp4的值:" + temp4); // 輸出14(temp4--已執(zhí)行)
        
        // 邏輯非
        boolean flag = true;
        boolean notFlag = !flag;
        System.out.println("!true = " + notFlag); // 輸出false
        System.out.println("!false = " + !notFlag); // 輸出true
        
        // 復(fù)雜邏輯組合
        boolean complexCondition = (num > 0) && (num % 2 == 1) || (num == 0);
        System.out.println("復(fù)雜條件結(jié)果:" + complexCondition); // 輸出true(15>0且是奇數(shù))
    }
}

注意事項(xiàng):

  • 短路邏輯運(yùn)算符(&&、||)由于具有短路特性,能提高程序執(zhí)行效率,實(shí)際開發(fā)中優(yōu)先使用。
  • 邏輯運(yùn)算符的操作數(shù)必須是boolean類型,不能是其他類型(如1 && 2會(huì)編譯報(bào)錯(cuò))。

1.4 賦值運(yùn)算符:實(shí)現(xiàn)變量賦值

賦值運(yùn)算符用于將右側(cè)的值賦值給左側(cè)的變量,分為基本賦值運(yùn)算符和復(fù)合賦值運(yùn)算符兩類。

(1)基本賦值運(yùn)算符

=(賦值):將右側(cè)的值(或表達(dá)式結(jié)果)賦值給左側(cè)的變量,左側(cè)必須是變量,不能是常量或表達(dá)式。

int a = 10; // 基本賦值
String name = "Java語法"; // 基本賦值
a = a + 5; // 將a+5的結(jié)果賦值給a

(2)復(fù)合賦值運(yùn)算符

復(fù)合賦值運(yùn)算符是賦值運(yùn)算符與算術(shù)運(yùn)算符的結(jié)合,用于簡(jiǎn)化代碼,包括+=、-=*=、/=、%=等。

語法格式:變量 復(fù)合賦值運(yùn)算符 表達(dá)式,等價(jià)于變量 = 變量 算術(shù)運(yùn)算符 表達(dá)式。

public class AssignmentOperatorDemo {
    public static void main(String[] args) {
        int a = 10;
        
        // += 等價(jià)于 a = a + 5
        a += 5;
        System.out.println("a += 5 后:" + a); // 輸出15
        
        // -= 等價(jià)于 a = a - 3
        a -= 3;
        System.out.println("a -= 3 后:" + a); // 輸出12
        
        // *= 等價(jià)于 a = a * 2
        a *= 2;
        System.out.println("a *= 2 后:" + a); // 輸出24
        
        // /= 等價(jià)于 a = a / 4
        a /= 4;
        System.out.println("a /= 4 后:" + a); // 輸出6
        
        // %= 等價(jià)于 a = a % 4
        a %= 4;
        System.out.println("a %= 4 后:" + a); // 輸出2
        
        // 復(fù)合賦值運(yùn)算符會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換
        byte b = 5;
        b += 3; // 等價(jià)于 b = (byte)(b + 3),自動(dòng)強(qiáng)制類型轉(zhuǎn)換
        System.out.println("byte類型b += 3 后:" + b); // 輸出8
        
        // 以下代碼編譯報(bào)錯(cuò):直接賦值不會(huì)自動(dòng)類型轉(zhuǎn)換
        // byte c = 5;
        // c = c + 3; // 錯(cuò)誤:int類型無法賦值給byte類型
    }
}

注意事項(xiàng):

  • 復(fù)合賦值運(yùn)算符會(huì)自動(dòng)進(jìn)行強(qiáng)制類型轉(zhuǎn)換,而直接使用算術(shù)運(yùn)算符 + 賦值的形式不會(huì),這是兩者的核心區(qū)別。
  • 賦值運(yùn)算符的優(yōu)先級(jí)較低,會(huì)先執(zhí)行右側(cè)的表達(dá)式,再將結(jié)果賦值給左側(cè)變量。

1.5 三元運(yùn)算符:簡(jiǎn)化分支判斷

三元運(yùn)算符(又稱三目運(yùn)算符)是 Java 中唯一的三目運(yùn)算符,用于簡(jiǎn)化簡(jiǎn)單的if-else分支判斷,返回一個(gè)具體的值。

語法格式:條件表達(dá)式 ? 表達(dá)式1 : 表達(dá)式2

  • 執(zhí)行邏輯:如果條件表達(dá)式為true,則執(zhí)行表達(dá)式 1 并返回其結(jié)果;如果為false,則執(zhí)行表達(dá)式 2 并返回其結(jié)果。
  • 要求:表達(dá)式 1 和表達(dá)式 2 的類型必須一致(或可以自動(dòng)類型轉(zhuǎn)換)。
public class TernaryOperatorDemo {
    public static void main(String[] args) {
        int score = 85;
        int num1 = 20;
        int num2 = 30;
        
        // 判斷成績(jī)等級(jí)
        String grade = score >= 90 ? "優(yōu)秀" : (score >= 80 ? "良好" : (score >= 60 ? "及格" : "不及格"));
        System.out.println("成績(jī)等級(jí):" + grade); // 輸出良好
        
        // 獲取兩個(gè)數(shù)的最大值
        int maxNum = num1 > num2 ? num1 : num2;
        System.out.println("最大值:" + maxNum); // 輸出30
        
        // 獲取三個(gè)數(shù)的最小值
        int num3 = 15;
        int minNum = (num1 < num2 ? num1 : num2) < num3 ? (num1 < num2 ? num1 : num2) : num3;
        System.out.println("最小值:" + minNum); // 輸出15
        
        // 自動(dòng)類型轉(zhuǎn)換:表達(dá)式1和表達(dá)式2類型不同,自動(dòng)轉(zhuǎn)為范圍更大的類型
        double result = num1 > 25 ? 10 : 3.14;
        System.out.println("自動(dòng)類型轉(zhuǎn)換結(jié)果:" + result); // 輸出3.14
    }
}

注意事項(xiàng):

  • 三元運(yùn)算符適用于簡(jiǎn)單的二分支判斷,復(fù)雜的多分支判斷建議使用if-elseswitch語句,避免代碼可讀性降低。
  • 三元運(yùn)算符的結(jié)果必須被使用(如賦值給變量、作為參數(shù)傳遞),不能單獨(dú)作為一條語句(如score >= 60 ? "及格" : "不及格";會(huì)編譯報(bào)錯(cuò))。

1.6 運(yùn)算符的優(yōu)先級(jí)與結(jié)合性

當(dāng)一個(gè)表達(dá)式中包含多個(gè)運(yùn)算符時(shí),會(huì)按照 “優(yōu)先級(jí)從高到低” 的順序執(zhí)行;當(dāng)優(yōu)先級(jí)相同時(shí),會(huì)按照 “結(jié)合性”(從左到右或從右到左)執(zhí)行。

(1)優(yōu)先級(jí)排序(從高到低,核心常用)

  1. 括號(hào) ()
  2. 自增 / 自減 ++--
  3. 算術(shù)運(yùn)算符 *、/、% > +-
  4. 關(guān)系運(yùn)算符 >、<>=、<= > ==!=
  5. 邏輯運(yùn)算符 && > ||
  6. 三元運(yùn)算符 ? :
  7. 賦值運(yùn)算符 =、+=-= 等

(2)結(jié)合性

  • 大部分運(yùn)算符的結(jié)合性是 “從左到右”(如算術(shù)運(yùn)算符、關(guān)系運(yùn)算符)。
  • 賦值運(yùn)算符、三元運(yùn)算符的結(jié)合性是 “從右到左”(如a = b = c;等價(jià)于a = (b = c);)。
public class OperatorPriorityDemo {
    public static void main(String[] args) {
        int a = 2;
        int b = 3;
        int c = 4;
        
        // 優(yōu)先級(jí):括號(hào) > 乘除 > 加減
        int result1 = a + b * c;
        System.out.println("a + b * c = " + result1); // 輸出14(先算3*4=12,再算2+12=14)
        int result2 = (a + b) * c;
        System.out.println("(a + b) * c = " + result2); // 輸出20(先算2+3=5,再算5*4=20)
        
        // 優(yōu)先級(jí):自增 > 算術(shù)運(yùn)算 > 關(guān)系運(yùn)算 > 邏輯運(yùn)算
        int x = 5;
        boolean result3 = x++ > 5 && x < 8;
        System.out.println("x++ > 5 && x < 8 = " + result3); // 輸出false(x++=5,5>5為false,短路與直接返回false)
        System.out.println("x的值:" + x); // 輸出6
        
        // 結(jié)合性:賦值運(yùn)算符從右到左
        int m = 1;
        int n = 2;
        int p = 3;
        m = n = p; // 等價(jià)于m = (n = p)
        System.out.println("m = " + m + ", n = " + n + ", p = " + p); // 輸出m=3, n=3, p=3
        
        // 結(jié)合性:算術(shù)運(yùn)算符從左到右
        int result4 = a + b + c;
        System.out.println("a + b + c = " + result4); // 輸出9(先算2+3=5,再算5+4=9)
    }
}

注意事項(xiàng):

  • 實(shí)際開發(fā)中,無需死記硬背運(yùn)算符優(yōu)先級(jí),通過添加括號(hào)()可以明確執(zhí)行順序,提高代碼可讀性。

1.7 強(qiáng)制類型轉(zhuǎn)換的常見場(chǎng)景與問題

在數(shù)據(jù)類型轉(zhuǎn)換中,強(qiáng)制類型轉(zhuǎn)換是將大范圍類型轉(zhuǎn)為小范圍類型的手動(dòng)操作,容易出現(xiàn)數(shù)據(jù)溢出或精度丟失問題,以下是典型示例:

public class ForceTypeConvertDemo {
    public static void main(String[] args) {
        // int → byte(強(qiáng)制轉(zhuǎn)換,可能溢出)
        int a = 200;
        byte b = (byte) a;
        System.out.println(b); // 輸出-56(200超出byte的取值范圍,發(fā)生溢出)
        
        // double → int(強(qiáng)制轉(zhuǎn)換,精度丟失)
        double d = 3.99;
        int num = (int) d;
        System.out.println(num); // 輸出3(小數(shù)部分被舍棄,不是四舍五入)
        
        // long → int(強(qiáng)制轉(zhuǎn)換,可能溢出)
        long l = 10000000000L;
        int i = (int) l;
        System.out.println(i); // 輸出1410065408(超出int范圍,溢出)
        
        // 補(bǔ)充:浮點(diǎn)型轉(zhuǎn)浮點(diǎn)型(精度丟失)
        double bigDouble = 123456789.123456789;
        float smallFloat = (float) bigDouble;
        System.out.println(smallFloat); // 輸出1.23456792E8(精度丟失,有效數(shù)字不足)
    }
}

強(qiáng)制類型轉(zhuǎn)換注意事項(xiàng):

  1. 溢出原因:小范圍類型的取值范圍無法容納大范圍類型的值,導(dǎo)致數(shù)據(jù)按二進(jìn)制補(bǔ)碼循環(huán)存儲(chǔ)(如 byte 的取值范圍是 - 128~127,200 的二進(jìn)制補(bǔ)碼超出 1 字節(jié),截?cái)嗪蟮玫?- 56)。
  2. 精度丟失:浮點(diǎn)型轉(zhuǎn)整型時(shí)直接舍棄小數(shù)部分,浮點(diǎn)型之間轉(zhuǎn)換時(shí)因有效數(shù)字不足導(dǎo)致精度下降,如需四舍五入,可使用Math.round()方法(如Math.round(3.99)返回 4)。
  3. 安全轉(zhuǎn)換:強(qiáng)制轉(zhuǎn)換前應(yīng)先判斷值是否在目標(biāo)類型的取值范圍內(nèi),避免溢出(如if (a >= Byte.MIN_VALUE && a <= Byte.MAX_VALUE) { byte b = (byte) a; })。

二、Java 流程控制:掌控程序執(zhí)行順序

流程控制用于決定程序的執(zhí)行路徑,分為分支結(jié)構(gòu)(選擇結(jié)構(gòu))和循環(huán)結(jié)構(gòu)兩類,分支結(jié)構(gòu)根據(jù)條件判斷執(zhí)行不同代碼塊,循環(huán)結(jié)構(gòu)根據(jù)條件重復(fù)執(zhí)行某段代碼。

2.1 分支結(jié)構(gòu):if-else 語句

if-else語句是最常用的分支結(jié)構(gòu),根據(jù)條件的真假執(zhí)行不同的代碼塊,分為單分支、雙分支和多分支三種形式。

(1)單分支 if 語句

語法格式:

if (條件表達(dá)式) {
    // 條件為true時(shí)執(zhí)行的代碼塊
}

執(zhí)行邏輯:條件表達(dá)式為true時(shí),執(zhí)行大括號(hào)內(nèi)的代碼塊;為false時(shí),跳過代碼塊,繼續(xù)執(zhí)行后續(xù)代碼。

public class IfSingleDemo {
    public static void main(String[] args) {
        int age = 18;
        
        // 單分支判斷:是否成年
        if (age >= 18) {
            System.out.println("你已成年,具備完全民事行為能力。");
        }
        
        int score = 95;
        if (score >= 90) {
            System.out.println("恭喜你,成績(jī)達(dá)到優(yōu)秀等級(jí)!");
            System.out.println("獲得獎(jiǎng)學(xué)金獎(jiǎng)勵(lì)。");
        }
        System.out.println("單分支判斷結(jié)束。");
    }
}

注意事項(xiàng):如果代碼塊只有一條語句,大括號(hào){}可以省略,但建議始終保留,提高代碼可讀性和可維護(hù)性。

(2)雙分支 if-else 語句

語法格式:

if (條件表達(dá)式) {
    // 條件為true時(shí)執(zhí)行的代碼塊
} else {
    // 條件為false時(shí)執(zhí)行的代碼塊
}

執(zhí)行邏輯:條件表達(dá)式為true時(shí)執(zhí)行 if 代碼塊,為false時(shí)執(zhí)行 else 代碼塊,兩者互斥,必有一個(gè)執(zhí)行。

public class IfElseDemo {
    public static void main(String[] args) {
        int num = -7;
        
        // 雙分支判斷:正數(shù)/非正數(shù)
        if (num > 0) {
            System.out.println(num + " 是正數(shù)。");
        } else {
            System.out.println(num + " 是負(fù)數(shù)或零。");
        }
        
        String gender = "女";
        if (gender.equals("男")) {
            System.out.println("性別:男");
        } else {
            System.out.println("性別:女");
        }
    }
}

(3)多分支 if-else if-else 語句

語法格式:

if (條件表達(dá)式1) {
    // 條件1為true時(shí)執(zhí)行的代碼塊
} else if (條件表達(dá)式2) {
    // 條件1為false、條件2為true時(shí)執(zhí)行的代碼塊
} else if (條件表達(dá)式3) {
    // 條件1、2為false、條件3為true時(shí)執(zhí)行的代碼塊
} else {
    // 所有條件都為false時(shí)執(zhí)行的代碼塊
}

執(zhí)行邏輯:從上到下依次判斷條件表達(dá)式,只要有一個(gè)條件為true,就執(zhí)行對(duì)應(yīng)的代碼塊,后續(xù)條件不再判斷;如果所有條件都為false,則執(zhí)行 else 代碼塊。

public class IfElseIfDemo {
    public static void main(String[] args) {
        int score = 75;
        String grade;
        
        // 多分支判斷成績(jī)等級(jí)
        if (score >= 90 && score <= 100) {
            grade = "優(yōu)秀";
        } else if (score >= 80 && score < 90) {
            grade = "良好";
        } else if (score >= 70 && score < 80) {
            grade = "中等";
        } else if (score >= 60 && score < 70) {
            grade = "及格";
        } else if (score >= 0 && score < 60) {
            grade = "不及格";
        } else {
            grade = "無效成績(jī)";
        }
        
        System.out.println("你的成績(jī)等級(jí)是:" + grade); // 輸出中等
        
        // 多分支判斷季節(jié)
        int month = 10;
        if (month >= 3 && month <= 5) {
            System.out.println(month + "月屬于春季。");
        } else if (month >= 6 && month <= 8) {
            System.out.println(month + "月屬于夏季。");
        } else if (month >= 9 && month <= 11) {
            System.out.println(month + "月屬于秋季。");
        } else if (month == 12 || month >= 1 && month <= 2) {
            System.out.println(month + "月屬于冬季。");
        } else {
            System.out.println(month + "月是無效月份。");
        }
    }
}

注意事項(xiàng):

  • 多分支的條件表達(dá)式之間應(yīng)避免重疊,確保邏輯嚴(yán)謹(jǐn)。
  • else 代碼塊是可選的,如果不需要處理所有條件為 false 的情況,可以省略 else。

2.2 分支結(jié)構(gòu):switch 語句

switch語句是另一種分支結(jié)構(gòu),適用于對(duì)一個(gè)變量的多個(gè)固定值進(jìn)行判斷,語法簡(jiǎn)潔,可讀性高。

(1)switch 語句基本語法

switch (表達(dá)式) {
    case 常量值1:
        // 表達(dá)式等于常量值1時(shí)執(zhí)行的代碼塊
        break; // 跳出switch語句
    case 常量值2:
        // 表達(dá)式等于常量值2時(shí)執(zhí)行的代碼塊
        break;
    // 更多case語句
    default:
        // 表達(dá)式不等于任何常量值時(shí)執(zhí)行的代碼塊
        break;
}

核心要求:

  • 表達(dá)式的類型只能是:byte、short、int、char(及其包裝類)、String(JDK7 + 支持)、枚舉(Enum)。
  • case 后的常量值必須唯一,且類型與表達(dá)式類型一致。
  • break 語句用于跳出 switch 語句,避免執(zhí)行后續(xù) case 代碼塊(穿透現(xiàn)象)。
  • default 語句是可選的,用于處理所有 case 不匹配的情況,位置可靈活放置(通常放在最后)。
public class SwitchBasicDemo {
    public static void main(String[] args) {
        // 整數(shù)類型的switch判斷
        int week = 3;
        String weekName;
        switch (week) {
            case 1:
                weekName = "星期一";
                break;
            case 2:
                weekName = "星期二";
                break;
            case 3:
                weekName = "星期三";
                break;
            case 4:
                weekName = "星期四";
                break;
            case 5:
                weekName = "星期五";
                break;
            case 6:
                weekName = "星期六";
                break;
            case 7:
                weekName = "星期日";
                break;
            default:
                weekName = "無效的星期數(shù)";
                break;
        }
        System.out.println("今天是:" + weekName); // 輸出星期三
        
        // 字符串類型的switch判斷(JDK7+)
        String fruit = "蘋果";
        switch (fruit) {
            case "蘋果":
                System.out.println("蘋果的單價(jià)是5元/斤。");
                break;
            case "香蕉":
                System.out.println("香蕉的單價(jià)是3元/斤。");
                break;
            case "橙子":
                System.out.println("橙子的單價(jià)是4元/斤。");
                break;
            default:
                System.out.println("暫無該水果的價(jià)格信息。");
                break;
        }
    }
}

(2)switch 語句的穿透現(xiàn)象

如果 case 語句后沒有添加 break 語句,會(huì)發(fā)生 “穿透現(xiàn)象”,即執(zhí)行完當(dāng)前 case 的代碼塊后,會(huì)繼續(xù)執(zhí)行后續(xù) case 的代碼塊,直到遇到 break 或 switch 語句結(jié)束。

穿透現(xiàn)象可用于處理多個(gè) case 需要執(zhí)行相同代碼的場(chǎng)景,簡(jiǎn)化代碼。

public class SwitchPenetrationDemo {
    public static void main(String[] args) {
        // 利用穿透現(xiàn)象判斷工作日/休息日
        int week = 6;
        switch (week) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println(week + "是工作日,需要上班。");
                break;
            case 6:
            case 7:
                System.out.println(week + "是休息日,可以休息。");
                break;
            default:
                System.out.println("無效的星期數(shù)。");
                break;
        }
        
        // 未添加break的穿透現(xiàn)象(慎用)
        int num = 2;
        switch (num) {
            case 1:
                System.out.println("執(zhí)行case 1");
            case 2:
                System.out.println("執(zhí)行case 2");
            case 3:
                System.out.println("執(zhí)行case 3");
            default:
                System.out.println("執(zhí)行default");
        }
        // 輸出:執(zhí)行case 2、執(zhí)行case 3、執(zhí)行default(穿透執(zhí)行)
    }
}

(3)switch 語句與 if-else 語句的對(duì)比

對(duì)比維度switch 語句if-else 語句
適用場(chǎng)景變量的多個(gè)固定值判斷復(fù)雜的條件判斷(范圍、邏輯組合等)
可讀性變量多值判斷時(shí)可讀性更高簡(jiǎn)單條件判斷時(shí)可讀性高,復(fù)雜條件稍差
執(zhí)行效率底層采用查找表 / 跳轉(zhuǎn)表,效率較高依次判斷條件,效率與條件順序相關(guān)
支持類型有限類型(byte/short/int/char/String/ 枚舉)支持所有 boolean 類型的條件表達(dá)式

2.3 循環(huán)結(jié)構(gòu):for 循環(huán)

for 循環(huán)是最常用的循環(huán)結(jié)構(gòu),適用于已知循環(huán)次數(shù)的場(chǎng)景,語法格式清晰,便于控制循環(huán)過程。

(1)for 循環(huán)基本語法

for (初始化表達(dá)式; 條件表達(dá)式; 更新表達(dá)式) {
    // 循環(huán)體:條件表達(dá)式為true時(shí)重復(fù)執(zhí)行的代碼塊
}

執(zhí)行流程:

  1. 執(zhí)行初始化表達(dá)式(僅執(zhí)行一次),用于初始化循環(huán)變量。
  2. 判斷條件表達(dá)式:
    • 若為true,執(zhí)行循環(huán)體代碼塊;
    • 若為false,跳出循環(huán),結(jié)束 for 循環(huán)。
  3. 執(zhí)行更新表達(dá)式,更新循環(huán)變量的值。
  4. 回到步驟 2,重復(fù)執(zhí)行,直到條件表達(dá)式為false。
public class ForBasicDemo {
    public static void main(String[] args) {
        // 示例1:循環(huán)輸出1-5的數(shù)字
        for (int i = 1; i <= 5; i++) {
            System.out.println("i = " + i);
        }
        
        // 示例2:計(jì)算1-100的累加和
        int sum = 0;
        for (int num = 1; num <= 100; num++) {
            sum += num;
        }
        System.out.println("1-100的累加和:" + sum); // 輸出5050
        
        // 示例3:循環(huán)輸出數(shù)組元素
        int[] arr = {10, 20, 30, 40, 50};
        for (int j = 0; j < arr.length; j++) {
            System.out.println("arr[" + j + "] = " + arr[j]);
        }
        
        // 示例4:倒序輸出10-1的數(shù)字
        for (int k = 10; k >= 1; k--) {
            System.out.println("k = " + k);
        }
    }
}

(2)增強(qiáng) for 循環(huán)(foreach 循環(huán))

增強(qiáng) for 循環(huán)(JDK5 + 支持)用于遍歷數(shù)組或集合中的元素,無需關(guān)心循環(huán)索引,語法簡(jiǎn)潔,可讀性高。

語法格式:

for (元素類型 變量名 : 數(shù)組/集合) {
    // 循環(huán)體:變量名表示當(dāng)前遍歷到的元素
}
public class ForEachDemo {
    public static void main(String[] args) {
        // 遍歷數(shù)組
        int[] arr = {1, 3, 5, 7, 9};
        System.out.println("數(shù)組元素:");
        for (int element : arr) {
            System.out.print(element + " ");
        }
        System.out.println(); // 輸出1 3 5 7 9
        
        // 遍歷字符串?dāng)?shù)組
        String[] names = {"張三", "李四", "王五", "趙六"};
        System.out.println("姓名列表:");
        for (String name : names) {
            System.out.println(name);
        }
        
        // 增強(qiáng)for循環(huán)的限制:無法修改數(shù)組元素的值(僅獲取元素)
        for (int num : arr) {
            num *= 2; // 僅修改局部變量num,不會(huì)改變數(shù)組原元素
        }
        System.out.println("修改后數(shù)組元素:");
        for (int element : arr) {
            System.out.print(element + " ");
        } // 仍輸出1 3 5 7 9
    }
}

注意事項(xiàng):

  • 增強(qiáng) for 循環(huán)只能用于遍歷,無法獲取數(shù)組索引,也無法修改數(shù)組元素的原值(基本數(shù)據(jù)類型)。
  • 遍歷集合時(shí),若在循環(huán)中修改集合(添加 / 刪除元素),會(huì)拋出ConcurrentModificationException異常。

(3)for 循環(huán)的特殊形式

  • 初始化表達(dá)式可以聲明多個(gè)同類型的循環(huán)變量,用逗號(hào)分隔。
  • 更新表達(dá)式可以同時(shí)更新多個(gè)循環(huán)變量,用逗號(hào)分隔。
  • 初始化表達(dá)式、條件表達(dá)式、更新表達(dá)式都可以省略(但分號(hào)不能省略),省略條件表達(dá)式表示無限循環(huán)。
public class ForSpecialDemo {
    public static void main(String[] args) {
        // 多個(gè)循環(huán)變量的for循環(huán)
        for (int i = 0, j = 10; i <= 10 && j >= 0; i++, j--) {
            System.out.println("i = " + i + ", j = " + j);
        }
        
        // 省略初始化表達(dá)式(循環(huán)變量已提前聲明)
        int k = 1;
        for (; k <= 5; k++) {
            System.out.println("k = " + k);
        }
        
        // 省略更新表達(dá)式(在循環(huán)體內(nèi)更新)
        int m = 1;
        for (; m <= 5; ) {
            System.out.println("m = " + m);
            m++; // 手動(dòng)更新循環(huán)變量
        }
        
        // 無限循環(huán)(需在循環(huán)體內(nèi)添加退出條件)
        int n = 1;
        for (;;) {
            System.out.println("無限循環(huán):n = " + n);
            n++;
            if (n > 3) {
                break; // 退出無限循環(huán)
            }
        }
    }
}

2.4 循環(huán)結(jié)構(gòu):while 循環(huán)

while 循環(huán)適用于未知循環(huán)次數(shù)的場(chǎng)景,僅通過條件表達(dá)式控制循環(huán)的開始和結(jié)束。

(1)while 循環(huán)基本語法

初始化表達(dá)式;
while (條件表達(dá)式) {
    // 循環(huán)體
    更新表達(dá)式;
}

執(zhí)行流程:

  1. 執(zhí)行初始化表達(dá)式(僅執(zhí)行一次)。
  2. 判斷條件表達(dá)式:
    • 若為true,執(zhí)行循環(huán)體和更新表達(dá)式;
    • 若為false,跳出循環(huán),結(jié)束 while 循環(huán)。
  3. 回到步驟 2,重復(fù)執(zhí)行,直到條件表達(dá)式為false。
public class WhileBasicDemo {
    public static void main(String[] args) {
        // 示例1:循環(huán)輸出1-5的數(shù)字
        int i = 1;
        while (i <= 5) {
            System.out.println("i = " + i);
            i++; // 更新循環(huán)變量
        }
        
        // 示例2:計(jì)算1-100的偶數(shù)和
        int sumEven = 0;
        int num = 1;
        while (num <= 100) {
            if (num % 2 == 0) {
                sumEven += num;
            }
            num++;
        }
        System.out.println("1-100的偶數(shù)和:" + sumEven); // 輸出2550
        
        // 示例3:未知次數(shù)循環(huán)(猜數(shù)字游戲)
        int randomNum = (int) (Math.random() * 100) + 1; // 生成1-100的隨機(jī)數(shù)
        int guessNum = 0;
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        
        while (guessNum != randomNum) {
            System.out.print("請(qǐng)輸入你猜測(cè)的數(shù)字(1-100):");
            guessNum = scanner.nextInt();
            if (guessNum > randomNum) {
                System.out.println("猜大了,請(qǐng)繼續(xù)猜測(cè)!");
            } else if (guessNum < randomNum) {
                System.out.println("猜小了,請(qǐng)繼續(xù)猜測(cè)!");
            } else {
                System.out.println("恭喜你,猜對(duì)了!");
            }
        }
        scanner.close();
    }
}

注意事項(xiàng):

  • 必須在循環(huán)體內(nèi)添加更新表達(dá)式,否則循環(huán)變量不會(huì)改變,會(huì)導(dǎo)致無限循環(huán)。
  • 條件表達(dá)式的結(jié)果必須是boolean類型,不能是其他類型。

2.5 循環(huán)結(jié)構(gòu):do-while 循環(huán)

do-while 循環(huán)是 while 循環(huán)的變種,特點(diǎn)是 “先執(zhí)行,后判斷”,無論條件是否滿足,循環(huán)體至少執(zhí)行一次。

(1)do-while 循環(huán)基本語法

初始化表達(dá)式;
do {
    // 循環(huán)體
    更新表達(dá)式;
} while (條件表達(dá)式);

執(zhí)行流程:

  1. 執(zhí)行初始化表達(dá)式(僅執(zhí)行一次)。
  2. 執(zhí)行循環(huán)體和更新表達(dá)式(至少執(zhí)行一次)。
  3. 判斷條件表達(dá)式:
    • 若為true,回到步驟 2,繼續(xù)循環(huán);
    • 若為false,跳出循環(huán),結(jié)束 do-while 循環(huán)。
public class DoWhileDemo {
    public static void main(String[] args) {
        // 示例1:循環(huán)輸出1-5的數(shù)字
        int i = 1;
        do {
            System.out.println("i = " + i);
            i++;
        } while (i <= 5);
        
        // 示例2:條件不滿足時(shí),循環(huán)體仍執(zhí)行一次
        int j = 6;
        do {
            System.out.println("j = " + j); // 會(huì)輸出j=6
            j++;
        } while (j <= 5);
        
        // 示例3:用戶輸入驗(yàn)證(確保至少輸入一次)
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        String password;
        do {
            System.out.print("請(qǐng)輸入密碼(6位數(shù)字):");
            password = scanner.next();
        } while (password.length() != 6 || !password.matches("\\d+"));
        System.out.println("密碼輸入格式正確!");
        scanner.close();
    }
}

(2)while 循環(huán)與 do-while 循環(huán)的對(duì)比

對(duì)比維度while 循環(huán)do-while 循環(huán)
執(zhí)行順序先判斷,后執(zhí)行先執(zhí)行,后判斷
循環(huán)體執(zhí)行次數(shù)可能為 0 次(條件初始為 false)至少 1 次
適用場(chǎng)景未知循環(huán)次數(shù),可能不執(zhí)行未知循環(huán)次數(shù),必須執(zhí)行一次

2.6 循環(huán)控制語句:break 與 continue

breakcontinue語句用于靈活控制循環(huán)的執(zhí)行流程,break用于跳出循環(huán),continue用于跳過當(dāng)前循環(huán)的剩余部分,進(jìn)入下一次循環(huán)。

(1)break 語句

break語句有兩種用法:

  • 跳出單層循環(huán):在循環(huán)體內(nèi)使用break,直接跳出當(dāng)前循環(huán),結(jié)束循環(huán)執(zhí)行。
  • 跳出多層循環(huán):通過標(biāo)簽(label)標(biāo)記外層循環(huán),在內(nèi)層循環(huán)中使用break 標(biāo)簽名,跳出標(biāo)記的外層循環(huán)。
public class BreakDemo {
    public static void main(String[] args) {
        // 跳出單層for循環(huán)
        for (int i = 1; i <= 10; i++) {
            if (i == 6) {
                break; // 當(dāng)i=6時(shí),跳出循環(huán)
            }
            System.out.println("i = " + i); // 輸出1-5
        }
        
        // 跳出單層while循環(huán)
        int j = 1;
        while (j <= 10) {
            if (j == 6) {
                break;
            }
            System.out.println("j = " + j); // 輸出1-5
            j++;
        }
        
        // 跳出多層循環(huán)(使用標(biāo)簽)
        outer: // 外層循環(huán)標(biāo)簽
        for (int m = 1; m <= 3; m++) {
            inner: // 內(nèi)層循環(huán)標(biāo)簽
            for (int n = 1; n <= 3; n++) {
                if (m == 2 && n == 2) {
                    break outer; // 跳出外層循環(huán)
                }
                System.out.println("m = " + m + ", n = " + n);
            }
        }
        // 輸出:m=1,n=1; m=1,n=2; m=1,n=3; m=2,n=1
    }
}

(2)continue 語句

continue語句有兩種用法:

  • 跳過當(dāng)前單層循環(huán):在循環(huán)體內(nèi)使用continue,跳過當(dāng)前循環(huán)的剩余代碼,直接進(jìn)入下一次循環(huán)。
  • 跳過當(dāng)前多層循環(huán)的內(nèi)層:通過標(biāo)簽標(biāo)記外層循環(huán),使用continue 標(biāo)簽名,跳過內(nèi)層循環(huán),直接進(jìn)入外層循環(huán)的下一次迭代。
public class ContinueDemo {
    public static void main(String[] args) {
        // 跳過當(dāng)前for循環(huán)(輸出1-10的奇數(shù))
        for (int i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                continue; // 跳過偶數(shù),直接進(jìn)入下一次循環(huán)
            }
            System.out.println("奇數(shù):" + i); // 輸出1、3、5、7、9
        }
        
        // 跳過當(dāng)前while循環(huán)
        int j = 0;
        while (j < 10) {
            j++;
            if (j % 2 == 0) {
                continue;
            }
            System.out.println("奇數(shù):" + j); // 輸出1、3、5、7、9
        }
        
        // 跳過內(nèi)層循環(huán)(使用標(biāo)簽)
        outer:
        for (int m = 1; m <= 3; m++) {
            for (int n = 1; n <= 3; n++) {
                if (n == 2) {
                    continue outer; // 跳過內(nèi)層循環(huán)剩余部分,進(jìn)入外層循環(huán)下一次迭代
                }
                System.out.println("m = " + m + ", n = " + n);
            }
        }
        // 輸出:m=1,n=1; m=2,n=1; m=3,n=1
    }
}

2.7 循環(huán)嵌套

循環(huán)嵌套是指在一個(gè)循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán),外層循環(huán)控制循環(huán)的輪數(shù),內(nèi)層循環(huán)控制每輪的執(zhí)行次數(shù)。常見的有 for-for 嵌套、for-while 嵌套等,適用于處理二維數(shù)據(jù)(如二維數(shù)組)、矩陣運(yùn)算等場(chǎng)景。

public class LoopNestingDemo {
    public static void main(String[] args) {
        // 示例1:打印九九乘法表
        for (int i = 1; i <= 9; i++) { // 外層循環(huán):控制行數(shù)
            for (int j = 1; j <= i; j++) { // 內(nèi)層循環(huán):控制每行的列數(shù)
                System.out.print(j + "×" + i + "=" + (i * j) + "\t");
            }
            System.out.println(); // 換行
        }
        
        // 示例2:打印矩形(5行8列*)
        for (int row = 1; row <= 5; row++) {
            for (int col = 1; col <= 8; col++) {
                System.out.print("*");
            }
            System.out.println();
        }
        
        // 示例3:遍歷二維數(shù)組
        int[][] twoDArr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
        for (int i = 0; i < twoDArr.length; i++) {
            for (int j = 0; j < twoDArr[i].length; j++) {
                System.out.print(twoDArr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

注意事項(xiàng):

  • 循環(huán)嵌套的層數(shù)不宜過多(通常不超過 3 層),否則會(huì)導(dǎo)致代碼可讀性下降和性能損耗。
  • 外層循環(huán)和內(nèi)層循環(huán)的循環(huán)變量不能重名,避免變量沖突。

三、總結(jié)

  1. 運(yùn)算符是 Java 程序的運(yùn)算基礎(chǔ),按功能可分為算術(shù)、關(guān)系、邏輯、賦值、三元運(yùn)算符等,使用時(shí)需注意優(yōu)先級(jí)、結(jié)合性,以及強(qiáng)制類型轉(zhuǎn)換的溢出和精度丟失問題。
  2. 流程控制分為分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),if-else適用于復(fù)雜條件判斷,switch適用于變量多固定值判斷;for適用于已知循環(huán)次數(shù),while/do-while適用于未知循環(huán)次數(shù)。
  3. break用于跳出循環(huán),continue用于跳過當(dāng)前循環(huán)剩余部分,循環(huán)嵌套適用于處理二維數(shù)據(jù)等復(fù)雜場(chǎng)景,合理使用這些語句能靈活掌控程序執(zhí)行邏輯。
  4. 實(shí)際開發(fā)中,應(yīng)根據(jù)業(yè)務(wù)場(chǎng)景選擇合適的運(yùn)算符和流程控制語句,注重代碼的可讀性和邏輯嚴(yán)謹(jǐn)性,避免無限循環(huán)、條件重疊等常見錯(cuò)誤。

到此這篇關(guān)于Java運(yùn)算符與流程控制之全類型運(yùn)算符用法及分支/循環(huán)語句實(shí)戰(zhàn)指南的文章就介紹到這了,更多相關(guān)Java運(yùn)算符用法及分支/循環(huán)語句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java錯(cuò)誤:進(jìn)行語法分析時(shí)已到達(dá)文件結(jié)尾的解決

    Java錯(cuò)誤:進(jìn)行語法分析時(shí)已到達(dá)文件結(jié)尾的解決

    這篇文章主要介紹了Java錯(cuò)誤:進(jìn)行語法分析時(shí)已到達(dá)文件結(jié)尾的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java中對(duì)話框的彈出方法

    Java中對(duì)話框的彈出方法

    下面小編就為大家?guī)硪黄狫ava中對(duì)話框的彈出方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • Java如何基于DOM解析xml文件

    Java如何基于DOM解析xml文件

    這篇文章主要介紹了Java如何基于DOM解析xml文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java中的鍵盤事件處理及監(jiān)聽機(jī)制解析

    Java中的鍵盤事件處理及監(jiān)聽機(jī)制解析

    這篇文章主要介紹了Java中的鍵盤事件處理及監(jiān)聽機(jī)制解析,Java事件處理采用了委派事件模型,在這個(gè)模型中,當(dāng)事件發(fā)生時(shí),產(chǎn)生事件的對(duì)象將事件信息傳遞給事件的監(jiān)聽者進(jìn)行處理,在Java中,事件源是產(chǎn)生事件的對(duì)象,比如窗口、按鈕等,需要的朋友可以參考下
    2023-10-10
  • java如何實(shí)時(shí)動(dòng)態(tài)獲取properties文件的內(nèi)容

    java如何實(shí)時(shí)動(dòng)態(tài)獲取properties文件的內(nèi)容

    這篇文章主要介紹了java如何實(shí)時(shí)動(dòng)態(tài)獲取properties文件的內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java的MyBatis框架中對(duì)數(shù)據(jù)庫進(jìn)行動(dòng)態(tài)SQL查詢的教程

    Java的MyBatis框架中對(duì)數(shù)據(jù)庫進(jìn)行動(dòng)態(tài)SQL查詢的教程

    這篇文章主要介紹了Java的MyBatis框架中對(duì)數(shù)據(jù)庫進(jìn)行動(dòng)態(tài)SQL查詢的教程,講解了MyBatis中一些控制查詢流程的常用語句,需要的朋友可以參考下
    2016-04-04
  • java修飾類的使用方法以及使用技巧(分享)

    java修飾類的使用方法以及使用技巧(分享)

    下面小編就為大家?guī)硪黄猨ava修飾類的使用方法以及使用技巧(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • Springboot集成Elasticsearch的步驟與相關(guān)功能

    Springboot集成Elasticsearch的步驟與相關(guān)功能

    ElasticSearch是開源搜索平臺(tái)領(lǐng)域的一個(gè)新成員,?ElasticSearch是一個(gè)基于Lucene構(gòu)建的開源,分布式,RESTful搜索引擎,這篇文章主要給大家介紹了關(guān)于Springboot集成Elasticsearch的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • Java利用jenkins做項(xiàng)目的自動(dòng)化部署

    Java利用jenkins做項(xiàng)目的自動(dòng)化部署

    這篇文章主要介紹了Java利用jenkins做項(xiàng)目的自動(dòng)化部署,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • SpringBoot中熱點(diǎn)KEY緩存優(yōu)化的2種主流策略

    SpringBoot中熱點(diǎn)KEY緩存優(yōu)化的2種主流策略

    所謂熱點(diǎn)KEY,是指在緩存或數(shù)據(jù)庫中被頻繁訪問的少量鍵值,這些鍵往往承載了系統(tǒng)中大部分的訪問流量,本文將分享SpringBoot中三種主流的熱點(diǎn)KEY緩存優(yōu)化策略,大家可以根據(jù)需求進(jìn)行選擇
    2025-04-04

最新評(píng)論

宜阳县| 鹤壁市| 会理县| 杭州市| 濮阳市| 米泉市| 民权县| 万荣县| 井研县| 开化县| 盘山县| 云安县| 凌源市| 安庆市| 理塘县| 南京市| 监利县| 东乡族自治县| 葫芦岛市| 湛江市| 河北省| 类乌齐县| 大田县| 新化县| 贺兰县| 和龙市| 莱州市| 渝中区| 从化市| 涟水县| 都兰县| 绥宁县| 平舆县| 毕节市| 廊坊市| 大荔县| 罗甸县| 金溪县| 蒲城县| 襄汾县| 焦作市|