当前位置: 首页 > news >正文

Java学习笔记:标识符

1. 什么是标识符?

在Java中,变量、方法、类等需要命名时使用的字符序列,称为 标识符(Identifier)

使用技巧:凡是需要自定义名字的地方都叫标识符。如:类名、方法名、变量名、包名、常量名等。

2. 标识符的命名规则(合法条件)

Java标识符必须遵守如下硬性规则,否则编译不通过:

  • 由26个英文字母的大小写(A-Z, a-z),数字(0-9),下划线(_),美元符号($)。
  • 不能以数字开头。
  • 不能使用Java的关键字和保留字,但可以包含关键字和保留字。
  • 不能使用字面量 truefalsenull
  • Java中严格区分大小写,长度无限制,但建议控制在合理范围(15~20字符为宜)。
  • 标识符不能包含空格

3. 标识符的命名规范(约定俗成)

虽然编译器不强制,但遵守以下规范能让代码更专业、可读性更高,如果不遵守,虽然编译和运行可以正常运行,但容易被人鄙视!

程序元素 命名规范 示例
包名 全小写,域名倒序,单词之间用点分隔 com.example.util
类名、接口名 大驼峰命名法(每个单词首字母大写) Student, ArrayList, Runnable
方法名、变量名 小驼峰命名法(首字母小写,后续单词首字母大写) getAge(), studentName
常量 全大写,单词间用下划线分隔 MAX_VALUE, DEFAULT_TIMEOUT
类型参数(泛型) 单个大写字母,常用 T, E, K, V class Box

命名时尽量见名知意,使用完整单词而非拼音,避免使用 a、b、c 等无意义缩写(临时循环变量除外)。

4. 合法与非法标识符示例

标识符 是否合法 说明
_count 合法,但不推荐
$value 合法,但不推荐
studentName 规范,小驼峰
StudentName 合法,但通常用于类名
MAX_SIZE 合法,常量命名
class 关键字
123abc 数字开头
my name 包含空格
user-name 包含减号(减号不是合法字符)
int 关键字
true 布尔字面量
年龄 合法,但不推荐
String 合法,但会遮蔽 java.lang.String

5. 注意事项与常见误区

  1. 避免使用美元符号 $ 和下划线 _ 开头
    虽然合法,但 $ 在编译器内部有特殊用途(如内部类编译后的文件命名),下划线开头易与系统变量混淆。
    ✅ 推荐:name, age, calculateTotal
    ⚠️ 不推荐:_name, $value

  2. 不要与Java标准库类名冲突
    即使不是关键字,使用与JDK常用类相同的名称也会造成混淆,降低可读性。
    ❌错误: class String { ... } 虽然合法,但会覆盖 java.lang.String,导致无法正常使用字符串。

  3. 可以使用Unicode字符,但应谨慎
    Java支持Unicode标识符(如中文、希腊字母),但在跨平台、编码不统一时容易引发乱码。
    ❌ 不推荐:int 年龄 = 20;
    ✅ 推荐:int age = 20;

  4. 标识符中不能有空格或特殊符号
    my name, user@name, first-name 非法

  5. 数字不能放在开头,但可以放在中间或结尾
    num1, count2, value3
    1num

6. 最佳实践总结

  • 严格遵循命名规则,确保代码编译通过。

  • 采用驼峰命名法,保持风格一致。

  • 使用英文单词,避免使用中文或中文拼音,提高可读性和跨团队协作效率。

  • 避开关键字和保留字,包括未来可能成为关键字的词(如 record, sealed)。

  • 常量全大写加下划线,区分变量。

  • 包名全小写,使用域名倒序避免冲突。

http://www.jsqmd.com/news/612577/

相关文章:

  • 颠覆级开源工具:7大维度重构原神游戏辅助体验
  • 广东智能家居方案哪家性价比高? - 中媒介
  • 等离子清洗机核心技术深度解析:从放电原理到宽幅处理,宁波普瑞思SPK-500S如何提升表面处理效能? - 品牌推荐大师
  • 俱美开放平台:外卖霸王餐API接口及外卖霸王餐CPS架构设计思路
  • Z-Image-GGUF多场景应用:IP形象设计、PPT插图生成、短视频封面批量制作
  • DataRoom大屏设计器:5分钟高效构建专业数据可视化看板的开源解决方案
  • Z-Image-Turbo-辉夜巫女性能调优实战:剖析采样器与步数对生成速度和质量的影响
  • EdgeConnect未来发展方向:图像修复技术的前沿探索
  • GLM-OCR环境部署避坑指南:Anaconda虚拟环境配置详解
  • 如何高效识别微信单向好友?WechatRealFriends开源工具的技术实现与实战应用
  • 合肥汤面招商深度解析:如何精准锁定口碑与盈利兼具的优质品牌 - 2026年企业推荐榜
  • fast-memoize.js源码深度剖析:如何实现极致性能优化
  • OmenSuperHub:惠普游戏本性能释放与散热管理的轻量解决方案
  • 如何为你的PDF文档添加终极安全保护:mPDF加密和权限设置完整指南
  • 3步精通SWF反编译:开源工具实现Flash逆向工程深度解析
  • 生物医药设备预测性维护:发酵罐/冻干机实操解析,合规又高效
  • Ono与Swift完美集成:从Objective-C到现代iOS开发
  • 2026乐山鳝丝推荐品牌:乐山临江鳝丝非遗、乐山大佛附近鳝丝、乐山必吃临江鳝丝、乐山本地人推荐的临江鳝丝、乐山特色临江鳝丝选择指南 - 优质品牌商家
  • Lychee-Rerank-MM实战指南:Gradio界面结果导出为CSV/Markdown格式
  • 微信聊天记录导出工具:3步轻松备份你的珍贵对话到电脑
  • Asterisks Service网络验证系统(易语言源码)开源版
  • 提升电子书管理效率:Calibre-Douban插件解决方案
  • SAM3 Agent 架构深度解析:当分割模型学会“思考“
  • Swift Foundation数据处理完全指南:从基础操作到高级技巧
  • 2025-2026年长沙装修公司评测:五家口碑服务推荐评价领先 - 品牌推荐
  • 基于Python的公司资产网站毕设源码
  • 如何让Windows 11运行如飞?Win11Debloat工具的3大核心优化方案
  • 如何高效实现文本交互?ActiveLabel.swift手势处理机制与UIGestureRecognizer的完美协同
  • 3步解锁Wand-Enhancer核心能力:从入门到精通的完整路径
  • STM32F103C8T6 DMA实战:从零构建通用驱动模板与核心参数调优指南