前言
本人小白一枚,现在正在学习Java的相关知识,并在这里记录笔记和心得,如有错误欢迎讨论指正。这篇文章是我整理的第一篇内容,分享我理解中的Java标识符。
一、Java标识符是什么?
引用百度百科中对标识符的定义:标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字。
从百科中的定义可以理解,标识符就是一种自己定义给某个事物的名称,像每个人的名字,就是一个人的标识符,Java中的标识符,就是编程人员给某个类、变量、常量、方法等的名字,文中有些地方可能会把它称为引用,遇到了再做解释。
二、先看一些简单的例子
定义类
class ClassName{ //类中的各种内容 }
定义变量
public int myInt = 10;
定义常量
private final String MY_NAME = "我的名字";
定义方法
public void function(){//方法体 }
上面举例的类名ClassName、变量名myInt、常量名MY_NAME、方法名function都是自定义的标识符,Java中自定义的内容还有很多,就不一一列举了,上面这些都是比较常见的例子。上文不同例子中自定义的标识符格式有所区别,至于原因下面就解释。
三、标识符的定义规则和规范
1 标识符的定义规则
标识符的命名规则主要有以下几点
- 标识符可以且仅可以由字符、数字、下划线和$美元符号组成,并且不能以数字开头
- 标识符严格区分大小写
- 标识符不能是Java的关键字和保留字
简单解释一下上面的规则
- 第一点不用多说,就是限制了标识符可以使用的字符种类,超出这个限制的标识符编译器扫描到都会抛出编译时异常,在一些开发工具中的表现就是标识符下面出现红色的波浪号。
- 第二点也比较浅显,Java的标识符是严格区分大小写的,比如abc和Abc就是两个完全不同的标识符,而在一些其他的高级语言中,可能会不区分大小写,把abc和Abc看做一个东西。
- 第三点的关键在于关键字和保留字,Java关键字是事先定义好,对Java语言有特别意义的标识符。简单点可以理解为关键字就是Java语言自己事先定义好的、功能又超脱了标识符的标识符,作用域是全局,所以为了防止冲突,Java就阻止程序员使用关键字作为自定义的标识符。至于保留字是Java的开发者们保留的,现在还不是但以后可能成为关键字的一些标识符。
看几个例子
- abc、_123、$ABC、a12_32是正确的标识符定义
- 1_abc、q*1、+1-2、final是不正确的标识符定义
附带一个Java关键字表
2 标识符的命名规范
不同企业和开发团队都有自己的标识符命名规范,这规范是在符合命名规则的前提下,人为再添加一些限制,提高代码的可读性。下面简单举几个常见的命名规范
- 标识符的命名一般不采用拼音而是使用英文。
- 类名使用大驼峰形式,即标识符首字母大写,如果是多个单词拼接而成的标识符,每个单词首字母大写。但是以下情形例外:DO/BO/DTO/VO/AO,这些具有特殊意义的字符不需要可以更改它们的大小写。
- 方法名、参数名、成员变量、局部变量使用小驼峰形式,即标识符首字母小写,如果由多个单词拼接而成,后续单词的首字母都要大写。
- 常量命名全部大写,单词之间用下划线隔开
- 抽象类命名使用Abstract或者Base开头,异常类命名用Exception结尾。
- 定义数组的时候,中括号跟在数据类型后面,如String[] args而不是String args[],即便两者编译都能通过。
- 等等
四、小结
标识符是Java语法中最基本的部分,这里简单做了一点整理,其实java的常量变量都属于标识符的内容,这些放在后面的文章中进行解释,这篇就简单介绍了一下什么是标识符以及标识符的定义规则规范,下面一篇文章介绍一下Java的数据类型,然后就开始进行具体的使用。