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

为何Java中可声明$为标识符(int $=24;)却不能用_(int _=24;)?

问题解答

这是因为Java 9及更高版本将单独的下划线_列为了保留标识符,禁止将其用作变量名或其他标识符,而美元符号$并未受到这个限制。

  • 在Java 8及更早版本中,单独的_确实是合法的标识符,符合你提到的“以下划线开头”的规则,此时声明int _=24;不会报错。
  • 从Java 9开始,Oracle把单独的_标记为保留字,目的是为未来的语言特性预留(比如用作Lambda表达式中未使用参数的占位符),所以此时再用_作为变量名就会触发编译错误,错误信息通常是'_' is not a valid identifier。

至于美元符号$,虽然Java语法允许它作为标识符开头,但官方并不推荐开发者主动使用——因为它通常被编译器用来生成自动代码中的标识符(比如内部类的名称)。不过语法上它始终是合法的,所以int $=24;在所有Java版本中都能正常编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:27:32