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

Java 7 新特性:二進制字面量與數值字面量下劃線,讓代碼更易讀

     編輯:Java 綜合教學

背景:Java 7 Project Coin 小語言增強

Java 7 引入多項語法糖,旨在減少樣板代碼、提升可讀性。本文聚焦數值字面量兩項增強:二進制字面量 與 下劃線分隔符,它們雖微小,卻極大改善了位運算與大數值的編碼體驗。

一、二進制字面量:0b / 0B 前綴

Java 6 時代的痛苦

需表示位模式時,只能用 Integer.parseInt("1100110", 2),弊端眾多:冗長、運行時解析開銷、無法用於 switch case(非常量表達式)、拼寫錯誤運行時才發現。

Java 7 寫法

int x = 0b1100110; // 十進制 102
int flags = 0B1010_0001; // 可配合下劃線

優勢:編譯期常量、零開銷、可用於 switch、IDE 語法高亮、直觀對應位模式。適用場景:網絡協議解析、加密算法、位掩碼操作、文件權限標志位等。

二、數值字面量下劃線:視覺分組神器

人類大腦不擅長處理長數字串

電話號碼 404-555-0122、銀行卡 6225 8888 9999 0000、金額 100,000,000 都用分隔符。Java 借鑒 Ruby 引入 _ 作為純編譯期視覺分隔,不影響語義:

long maxLong = 9_223_372_036_854_775_807L; // 一眼看清量級
int bitMask = 0b0001_1100_0011_0111_0010_1011_1010_0011; // 每4位一組,對應十六進制
double amount = 1_000_000.99;

語法規則(編譯器強制)

  • 不能放在首尾:_123、123_ ❌
  • 不能緊鄰小數點:1_23.45、123_.45 ❌
  • 不能緊鄰類型後綴:123_L ❌
  • 不能緊鄰進制前綴:0_xFF、0b_1010 ❌
  • 可以連續多個:1__2__3 ✅(但不推薦)

三、長整型後綴大寫 L 強制規範

long l = 1010100l; 极易誤讀為 10101001。強制使用大寫 L:long l = 1010100L;,消除歧義。

總結

二進制字面量解決了「位模式直觀表達」的缺失;下劃線分隔符解決了「大數值可讀性」的痛點。兩者均為編譯期語法糖,零運行時開銷,建議在涉及位運算、配置常量、ID 生成等場景大膽使用,讓代碼自文檔化。

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