Java学习笔记:标识符
<h2 id="1-什么是标识符">1. 什么是标识符?</h2><p>在Java中,变量、方法、类等需要命名时使用的字符序列,称为 <strong>标识符(Identifier)</strong>。</p>
<p>使用技巧:凡是需要自定义名字的地方都叫标识符。如:类名、方法名、变量名、包名、常量名等。</p>
<h2 id="2-标识符的命名规则合法条件">2. 标识符的命名规则(合法条件)</h2>
<p>Java标识符必须遵守如下硬性规则,否则编译不通过:</p>
<ul>
<li>由26个英文字母的大小写(A-Z, a-z),数字(0-9),下划线(_),美元符号($)。</li>
<li>不能以数字开头。</li>
<li>不能使用Java的关键字和保留字,但可以包含关键字和保留字。</li>
<li>不能使用字面量 <code>true</code>、<code>false</code>、<code>null</code>。</li>
<li>Java中严格区分大小写,长度无限制,但建议控制在合理范围(15~20字符为宜)。</li>
<li>标识符不能包含空格</li>
</ul>
<h2 id="3-标识符的命名规范约定俗成">3. 标识符的命名规范(约定俗成)</h2>
<p>虽然编译器不强制,但遵守以下规范能让代码更专业、可读性更高,如果不遵守,虽然编译和运行可以正常运行,但容易被人鄙视!</p>
<table>
<thead>
<tr>
<th>程序元素</th>
<th>命名规范</th>
<th>示例</th>
</tr>
</thead>
<tbody>
<tr>
<td>包名</td>
<td>全小写,域名倒序,单词之间用点分隔</td>
<td>com.example.util</td>
</tr>
<tr>
<td>类名、接口名</td>
<td>大驼峰命名法(每个单词首字母大写)</td>
<td>Student, ArrayList, Runnable</td>
</tr>
<tr>
<td>方法名、变量名</td>
<td>小驼峰命名法(首字母小写,后续单词首字母大写)</td>
<td>getAge(), studentName</td>
</tr>
<tr>
<td>常量</td>
<td>全大写,单词间用下划线分隔</td>
<td>MAX_VALUE, DEFAULT_TIMEOUT</td>
</tr>
<tr>
<td>类型参数(泛型)</td>
<td>单个大写字母,常用 T, E, K, V</td>
<td>class Box<t></t></td>
</tr>
</tbody>
</table>
<blockquote>
<p>命名时尽量见名知意,使用完整单词而非拼音,避免使用 a、b、c 等无意义缩写(临时循环变量除外)。</p>
</blockquote>
<h2 id="4-合法与非法标识符示例">4. 合法与非法标识符示例</h2>
<table>
<thead>
<tr>
<th>标识符</th>
<th>是否合法</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>_count</td>
<td>✅</td>
<td>合法,但不推荐</td>
</tr>
<tr>
<td>$value</td>
<td>✅</td>
<td>合法,但不推荐</td>
</tr>
<tr>
<td>studentName</td>
<td>✅</td>
<td>规范,小驼峰</td>
</tr>
<tr>
<td>StudentName</td>
<td>✅</td>
<td>合法,但通常用于类名</td>
</tr>
<tr>
<td>MAX_SIZE</td>
<td>✅</td>
<td>合法,常量命名</td>
</tr>
<tr>
<td>class</td>
<td>❌</td>
<td>关键字</td>
</tr>
<tr>
<td>123abc</td>
<td>❌</td>
<td>数字开头</td>
</tr>
<tr>
<td>my name</td>
<td>❌</td>
<td>包含空格</td>
</tr>
<tr>
<td>user-name</td>
<td>❌</td>
<td>包含减号(减号不是合法字符)</td>
</tr>
<tr>
<td>int</td>
<td>❌</td>
<td>关键字</td>
</tr>
<tr>
<td>true</td>
<td>❌</td>
<td>布尔字面量</td>
</tr>
<tr>
<td>年龄</td>
<td>✅</td>
<td>合法,但不推荐</td>
</tr>
<tr>
<td>String</td>
<td>✅</td>
<td>合法,但会遮蔽 java.lang.String</td>
</tr>
</tbody>
</table>
<h2 id="5-注意事项与常见误区">5. 注意事项与常见误区</h2>
<ol>
<li>
<p>避免使用美元符号 <code>$</code> 和下划线 <code>_</code> 开头<br>
虽然合法,但 <code>$</code> 在编译器内部有特殊用途(如内部类编译后的文件命名),下划线开头易与系统变量混淆。<br>
✅ 推荐:<code>name</code>, <code>age</code>, <code>calculateTotal</code><br>
⚠️ 不推荐:<code>_name</code>, <code>$value</code></p>
</li>
<li>
<p>不要与Java标准库类名冲突<br>
即使不是关键字,使用与JDK常用类相同的名称也会造成混淆,降低可读性。<br>
❌错误: <code>class String { ... }</code> 虽然合法,但会覆盖 <code>java.lang.String</code>,导致无法正常使用字符串。</p>
</li>
<li>
<p>可以使用Unicode字符,但应谨慎<br>
Java支持Unicode标识符(如中文、希腊字母),但在跨平台、编码不统一时容易引发乱码。<br>
❌ 不推荐:<code>int 年龄 = 20;</code><br>
✅ 推荐:<code>int age = 20;</code></p>
</li>
<li>
<p>标识符中不能有空格或特殊符号<br>
❌ <code>my name</code>, <code>user@name</code>, <code>first-name</code> 非法</p>
</li>
<li>
<p>数字不能放在开头,但可以放在中间或结尾<br>
✅ <code>num1</code>, <code>count2</code>, <code>value3</code><br>
❌ <code>1num</code></p>
</li>
</ol>
<h2 id="6-最佳实践总结">6. 最佳实践总结</h2>
<ul>
<li>
<p><strong>严格遵循命名规则</strong>,确保代码编译通过。</p>
</li>
<li>
<p><strong>采用驼峰命名法</strong>,保持风格一致。</p>
</li>
<li>
<p><strong>使用英文单词</strong>,避免使用中文或中文拼音,提高可读性和跨团队协作效率。</p>
</li>
<li>
<p><strong>避开关键字和保留字</strong>,包括未来可能成为关键字的词(如 <code>record</code>, <code>sealed</code>)。</p>
</li>
<li>
<p><strong>常量全大写加下划线</strong>,区分变量。</p>
</li>
<li>
<p><strong>包名全小写</strong>,使用域名倒序避免冲突。</p>
</li>
</ul><br><br>
来源:https://www.cnblogs.com/lisong0626/p/19807410
頁:
[1]