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

Java 開發必備四大效能小技巧:位運算、無暫存變數交換、權限位遮罩與正則表達式

     編輯:Java 相關知識

技巧一:判斷奇偶數——位運算優於取模

// 傳統寫法
if (num % 2 != 0) { /* 奇數 */ }

// 高效寫法:位元 AND 運算
if ((num & 1) == 1) { /* 奇數 */ }

原理:二進位最低位為 1 即奇數。位運算直接作用於 CPU 暫存器,指令週期遠少於除法指令,效能提升明顯。

技巧二:兩數交換——無需暫存變數

方法 A:算術運算(注意溢位風險)

x = x + y;
y = x - y;
x = x - y;

方法 B:XOR 異或運算(無溢位風險,推薦)


x = x ^ y;
y = y ^ x;
x = x ^ y;

適用場景:面試考題、嵌入式系統記憶體極度受限、演示位運算特性。現代 JVM JIT 優化極佳,實務上 temp 變數可讀性更高、效能差異可忽略。

技巧三:Linux 權限位遮罩——位運算實戰


// 定義權限常數(對應 rwx 三個 bit)
int READ    = 1 << 0; // 001 = 1
int WRITE   = 1 << 1; // 010 = 2
int EXECUTE = 1 << 2; // 100 = 4

// 使用者擁有「讀 + 執行」權限 = 1 | 4 = 5
int userPerm = READ | EXECUTE;

// 判斷是否可讀
boolean canRead = (userPerm & READ) != 0;
// 判斷是否可寫
boolean canWrite = (userPerm & WRITE) != 0;

對應 Linux chmod 777(rwxrwxrwx),每組三位分別代表擁有者/群組/其他人。位遮罩技術廣泛應用於系統權限、功能開關、狀態機設計。

技巧四:字串處理——正則表達式的威力

正則表達式基於有限狀態自動機理論,處理速度極快,Linux grep、sed、awk 皆大量依賴。

實戰範例:驗證 XML 節點命名規範

規則:
1. 首字元為字母
2. 中間允許字母、數字、. - _
3. 尾字元允許字母、數字、空白、. - _


String regex = "^[[a-zA-Z]|[\\u2E80-\\u9FFF]]+[[a-zA-Z]|[0-9]|[\\u2E80-\\u9FFF]|[.|\\-|_]]+\\s*$";

public class RegexTest {
    @Test
    public void testXmlNodeName() {
        String input = "w你w好.-.553.你-.__.-.  ";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        System.out.println(matcher.matches() ? "匹配成功" : "匹配失敗");
        // 亦可簡寫:Pattern.matches(regex, input)
    }
}

關鍵字元說明:
^ 開頭、$ 結尾、+ 一次以上、\\s* 零或多空白、\\u2E80-\\u9FFF 涵蓋 CJK 統一表意文字(中日韓漢字)。

總結

這四大技巧皆源於位運算與自動機理論的基礎電腦科學知識。平時多寫代碼、多思考底層原理,才能在關鍵路徑上做出最優選擇。

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