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

Java 核心技術精華:13 條高手實戰經驗總結

     編輯:Java 相關知識

前言

Java 作為企業級開發的主流語言,其核心機制與最佳實踐往往決定了代碼的質量與性能。本文整理了 13 條來自一線高手的實戰經驗,涵蓋位運算、類型轉換、字符串處理、I/O 操作、集合與數組、大數運算、命令行參數等核心知識點,助你夯實基本功,避開常見坑點。

1. 位移運算符的細微差別

>>>(無符號右移)會在最高位補 0,而 >>(有符號右移)則保留符號位。Java 沒有 <<< 運算符,因為左移不涉及符號位填充問題。

2. 強制類型轉換與四捨五入

強制轉換直接截斷小數位,若需四捨五入請使用 Math.round()。例如:(int) 3.9 == 3,而 Math.round(3.9) == 4。

3. boolean 與數值類型不可互轉

Java 中 boolean 不能與任何數值類型轉換,唯一變通方式是使用三元運算符:b ? 1 : 0。

4. 字符串的本質

Java 沒有內置原始字符串類型,String 是不可變的 final 類。正是因為不可變,String 才不提供修改內容的方法,這也使得字符串常量池共享成為可能,節省內存。

5. 字符串比較的正確姿勢

C++ 重載了 == 可直接比較字符串內容,Java 僅比較引用。正確做法是使用 equals() 或 compareTo()(類似 C 的 strcmp):

greeting.compareTo("Hello") == 0  // 內容相等

6. 字符、代碼單元與代碼點

  • length() 返回 UTF-16 代碼單元數量
  • codePointCount() 返回實際字符(代碼點)數量
  • charAt(n) 取代碼單元,索引範圍 0 ~ length()-1
  • 取第 i 個代碼點:offsetByCodePoints(0, i) 配合 codePointAt()

7. 高效構建字符串:StringBuilder

StringBuilder builder = new StringBuilder();
builder.append(ch); // 或 append(str)
String result = builder.toString();

避免在循環中使用 + 拼接,減少中間對象創建。

8. 輸入輸出:Scanner 與 Console

  • Scanner 位於 java.util,適合解析各類輸入
  • Console 可安全讀取密碼(不回顯):
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = cons.readPassword("Password: ");

9. 格式化輸出的參數索引

printf 支持顯式索引,避免重複傳參:

System.out.printf("%1$s %2$tB %2$te %2$ty", "Due date:", new Date());

10. 文件讀寫與異常處理

Scanner in = new Scanner(new File("myfile.txt"));   // 路徑含反斜槓需轉義
PrintWriter out = new PrintWriter("myfile.txt");

文件不存在或不可建立時會拋出異常,務必捕獲處理。

11. 大數運算:BigInteger 與 BigDecimal

當 long/double 精度不足時:

BigInteger a = BigInteger.valueOf(100);
a = a.add(b).multiply(c);  // 不能用 + * 運算符

12. 數組進階用法

  • 增強 for 循環:for (int v : arr) ...
  • 快速打印:Arrays.toString(arr) / 二維用 Arrays.deepToString()
  • 初始化簡寫:int[] a = {1,2,3}; 或匿名 new int[]{1,2,3}
  • 長度可為 0,拷貝用 Arrays.copyOf(arr, newLen)(擴容自動填充默認值)
  • Java 數組本質是堆上對象,邊界檢查,無指針運算,等同 C++ int* a = new int[100]
  • 排序:Arrays.sort(arr)

13. 命令行參數

java Message -g cruel world
args[0]="-g"  args[1]="cruel"  args[2]="world"

總結

這 13 條技術點貫穿 Java 基礎開發的方方面面,熟練掌握能顯著提升代碼健壯性與性能。建議收藏備查,實戰中反覆練習。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved