首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 核心技術卷 I 基礎知識精華筆記:第 3 章 基本程式設計結構

     編輯:Java 綜合教學

Java 基礎語法精華總結:從資料型別到控制流程

本文提煉自《Java 核心技術 卷 I》第 3 章,聚焦 Java 基本程式設計結構的核心知識點,包含資料型別、變數、運算子、字串處理、輸入輸出等實戰必備內容。

一、基本語法規範

  • 大小寫敏感:main ≠ Main
  • 命名慣例:駝峰式(lowerCamelCase),類名 UpperCamelCase,常量 UPPER_SNAKE_CASE
  • main 方法簽名:public static void main(String[] args),正常退出代碼 0,異常調用 System.exit(n)
  • 註釋三種:// 單行、/* */ 多行(不可嵌套)、/** */ 文檔註釋(可生成 Javadoc)

二、八大基本資料型別

分類型別位元數範圍/精度預設值
整數byte8-128 ~ 1270
short16-32,768 ~ 32,7670
int32-2^31 ~ 2^31-10
long64-2^63 ~ 2^63-10L
浮點float32~6-7 位有效數字0.0f
double64~15 位有效數字0.0
字符char16Unicode 字符 (UTF-16)'\u0000'
布林boolean1 (JVM 實現相關)true/falsefalse

關鍵特性

  • 無無符號型別:所有數值型別均為有號,跨平台一致性由 JVM 保證。
  • 數值字面量底線:Java 7+ 支援 1_000_000、0b1010_1100 提升可讀性。
  • 浮點數陷阱:2.0 - 1.1 = 0.8999999999999999,金融計算**嚴禁**用 float/double,必須用 BigDecimal。
  • 特殊浮點值:Double.POSITIVE_INFINITY、NEGATIVE_INFINITY、NaN;判斷 NaN 唯有 Double.isNaN(x)。
  • char 陷阱:char 為 UTF-16 代碼單元,補充字符(Emoji、生僻字)佔 2 個 char,操作字串請用 String 或 codePoint API。

三、變數與常量

  • 聲明即定義:Java 不區分聲明/定義,int x = 10; 完成兩者。
  • 區域變數無預設值:使用前**必須**顯式初始化,否則編譯錯誤。
  • 常量定義:static final double PI = 3.14159;,編譯期常量會內聯優化。
  • const 為保留關鍵字,不可使用。

四、運算子與表達式

1. 算術運算子

  • 整數除零拋 ArithmeticException;浮點數除零得 Infinity/NaN。
  • ++/-- 前綴/後綴區別:int a=1; b=++a → a=2,b=2;c=a++ → a=2,c=1。
  • 建議:避免在複雜表達式中使用 ++/--,降低可讀性。

2. 邏輯與位運算

  • 短路邏輯:&&、||,右運算元可能不執行(if (x!=0 && 10/x > 2) 安全)。
  • 位運算:& | ^ ~ << >> >>>(無符號右移補 0)。
  • 位掩碼技巧:(n & (1<<3)) >> 3 取第 4 位。

3. 三元運算子

int min = (x < y) ? x : y;

五、數學工具類

  • Math.sqrt(), Math.PI, Math.E
  • import static java.lang.Math.*; 可直接用 sqrt()。
  • StrictMath:嚴格遵循 IEEE 754,跨平台結果完全一致,效能稍低。

六、型別轉換

七、字串核心機制

  • 不可變性:String 所有方法均返回新物件,原物件不變。
  • 常量池:字面量 "abc" 共享;new String("abc") 強制建立新物件。
  • 比較:== 比引用,equals() 比內容。
  • 拼接:+ 編譯器優化為 StringBuilder;循環中請手動用 StringBuilder。
  • 常用 API:substring, split, replace, trim, format, join, lines() (Java 11+)。

八、輸入輸出基礎

Scanner 讀取標準輸入

Scanner in = new Scanner(System.in);
String name = in.nextLine();      // 整行
int age = in.nextInt();           // 整數
double score = in.nextDouble();   // 浮點
in.close();

格式化輸出

System.out.printf("姓名: %s, 年齡: %d, 分數: %.2f%n", name, age, score);
System.out.format("同上%n");

九、控制流程

  • if/else、switch (Java 12+ 支援表達式、模式匹配)、for/while/do-while
  • 增強 for:for (int x : arr) 僅讀遍歷,不可修改陣列元素。
  • break/continue 可帶標籤跳出多層循環。

十、大數值處理

  • BigInteger:任意精度整數,支援加減乘除、模運算、質數測試。
  • BigDecimal:任意精度十進制浮點,**金融/貨幣計算唯一選擇**,需指定 RoundingMode。

總結

第 3 章奠定了 Java 程式設計的語法基石。掌握基本型別特性、字串不可變機制、浮點數陷阱、BigDecimal 金融應用、Scanner/printf 輸入輸出,是寫出正確、高效 Java 代碼的前提。下一章將進入面向對象程式設計核心——類與物件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類型範例說明
隱式擴寬int → long → float → double無精度損失(long→float 可能損精度)
顯式窄化(byte) 300 → 44截斷高位,可能數值劇變
浮點轉整Math.round(3.6) → 4 (long)四捨五入,非截斷