0

0

Java编程中的标识符命名规则有哪些_Java命名规范详解

P粉602998670

P粉602998670

发布时间:2026-02-27 10:39:14

|

990人浏览过

|

来源于php中文网

原创

java标识符可使用字母(含unicode如中文)、下划线_、美元符$开头,后接字母、数字、_或$;不可用数字、空格、-、#、.、@、%等开头或中间;false、true、null为字面量,class等为关键字,均不可作标识符;大小写敏感;$和中文语法允许但工程不推荐。

java编程中的标识符命名规则有哪些_java命名规范详解

Java标识符哪些字符能用、哪些绝对不能用

Java标识符必须以字母(a–z/A–Z,也支持中文、日文等Unicode字母)、下划线_或美元符$开头;后续字符可以是字母、数字0–9_$。数字不能开头,空格、连字符-、井号#、点号.、@、%等一律不合法。

常见错误现象:123abc(编译报错:illegal start of expression)、my-class-不是允许字符)、hello world(含空格,直接语法错误)。

  • falsetruenull 看起来像普通单词,但它们是字面量(literal),属于语法保留项,不能当标识符用
  • classpublicstatic 是关键字,哪怕加了下划线如 class_name 也合法(因为不是“等于”关键字),但 class 单独出现就非法
  • 大小写敏感——Countcount 是两个完全不同的标识符,别以为只是风格差异,它们在JVM里就是不同符号

为什么int能当变量名的一部分,但不能单独用

因为Java只禁止「完全匹配」关键字或字面量的标识符,不禁止包含它们。所以 intValuemyInt 都合法,但 int 本身是关键字,单独作变量名会触发编译器拒绝。

使用场景:你在写工具类时可能想命名 stringToIntintArray,没问题;但若图省事写 int i = 5; 里的 i 换成 int = 5;,就会报 error: not a statement

立即学习Java免费学习笔记(深入)”;

  • 关键字检查发生在词法分析阶段,是全字匹配,不看上下文
  • gotoconst 虽未被使用,但仍是保留字,也不能用
  • IDE(如IntelliJ)通常会高亮标出非法标识符,但别依赖它——有些拼写接近关键字的(如 defualt)不会报错,却容易引发逻辑混淆

包名、类名、变量名怎么起才不算“瞎起”

命名规则是底线,命名规范才是团队协作的实际门槛。不遵守规范不一定报错,但会让别人读你代码时多花三倍时间理解意图。

提客AI提词器
提客AI提词器

「直播、录课」智能AI提词,搭配抖音直播伴侣、腾讯会议、钉钉、飞书、录课等软件等任意软件。

下载

实操建议:

  • 包名全小写,用点分隔:com.example.utils(不是 Com.Example.Utils,也不是 comExampleUtils
  • 类名/接口名用大驼峰:HttpClientFactory(不是 httpclientfactoryHTTPClientFactory
  • 变量和方法名用小驼峰:userNamecalculateTotalPrice()(避免 usernameCalculateTotalPrice
  • 常量全大写+下划线:MAX_RETRY_COUNT(注意不是 maxRetryCount,后者是普通变量风格)

容易踩的坑:有人把常量写成 private static final int MAX_RETRY = 3; ——看着没问题,但一旦项目接入Checkstyle或SonarQube,就会标红提醒:常量名应全大写并用下划线分隔。

$和中文起名到底行不行

语法上允许,但工程中基本等于自找麻烦。

$ 在Java里主要由编译器自动生成(比如内部类编译后变成 Outer$Inner.class),人工用它命名(如 user$cache)会让其他开发者本能怀疑这是生成代码或反编译残留。

中文作为标识符虽被JVM支持(JLS明确允许Unicode字母),但存在实际风险:

  • 部分老旧构建工具(如某些Ant配置、旧版Gradle插件)可能无法正确处理含中文的类路径
  • Git diff 或代码审查工具偶尔对UTF-8边界处理异常,导致显示乱码或合并冲突误判
  • 团队里有非中文母语成员时,可读性和搜索效率断崖下降(比如搜 用户名 还是 userName?)

真正需要表达含义时,宁可用英文组合:adminLoginToken管理员登录令牌 更可靠——不是因为英文高级,而是因为它在所有环节都稳。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

248

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

906

2024.03.01

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1560

2023.10.24

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

200

2023.11.20

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

391

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

348

2023.10.25

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

198

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

310

2024.02.23

html5播放器怎么用
html5播放器怎么用

本合集全面介绍HTML5播放器的使用方法,涵盖基础语法、自定义控制、兼容性处理及实战示例。阅读专题下面的文章了解更多详细内容。

0

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3.9万人学习

C# 教程
C# 教程

共94课时 | 10.3万人学习

Java 教程
Java 教程

共578课时 | 73.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号