You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Java Integer实例化时传入带下划线数值的原理咨询

Java数值字面量下划线的原理解析

你提到的疑问代码

Integer i=new Integer(100_00);

别担心,这完全是Java的基础语法特性,一点都不复杂!

这个下划线其实是Java 7及以后版本引入的数字字面量分隔符,核心作用就是让长数字看起来更易读,和数字本身的数值没有任何关联。

关键特性说明

  • 下划线只能放置在数字的数字位之间,不能出现在数字的开头、结尾,也不能挨着小数点、正负号、进制标识(比如0x、0b)这些符号
  • 编译器在编译阶段会自动忽略所有的下划线,所以100_00和10000在编译器眼中是完全等价的,最终都会被解析为整数10000
  • 这个特性适用于所有数值类型,比如:
    • 十进制整数:1_000_000(直观表示一百万)
    • 十六进制:0xFF_EC_DE_5E(更易区分字节段)
    • 浮点数:3.1415_9265_3589(拆分小数位更清晰)

简单来说,你写new Integer(100_00),编译后生成的字节码和new Integer(10000)完全一致,JVM运行时根本感知不到下划线的存在——它只是Java给开发者提供的一个代码可读性优化工具而已~

内容的提问来源于stack exchange,提问作者Nishant_Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:34:46