今天复习了一下关于java的基础部分的内容,我想基本上很多第一次学java的人应该都跟我之前一样只会用而不知道为什么要用,上网查资料的时候也看到挺多人说初学者知道怎么用就行了不要去纠结一些细致的问题,这种说法我是不认同的,因为这样下去你会成为一个码农而不是真正意义上的程序员,当然也可能是我强迫症的原因自以为是了。好了下面进入正题:
首先我们来看下java中的标识符,关键字和保留字的概念(这里的概念我就直接引用百度百科的了)
java标识符的概念:
在java语言中,对于变量,函数,类,语句块也有名字,我们统统称之为java标识符
标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的
java关键字的概念:
java关键字是电脑语言里事先定义好的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。java关键字对java的编译器有特殊意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数
java保留字的概念:
保留字顾名思义就是保留的关键字用于作为以后java版本更新的预留关键字
今天为了了解他们之间的关系上网查了很多资料发现那些答案真是五花八门的于是总结了一下几个问题:
1.关键字是不是标识符?
这个问题的由来是因为查资料的时候看到有人问于是我也纠结了一下,看了网上很多人发的博客或者帖子答案都不太统一,最后看到有人发java的官方文档才解决,事实上在java的官方文档中有说过标识符是包含关键字的,两者的关系是从属关系
2.false,true,null是不是关键字?
这个问题的由来也是看到很多人发的关键字总览表都包含了这三个,但实际上在java官方文档中也有给出答案,这三个值属于字面常量被标识符包含可以说是与关键字平级的关系
3.goto,const是不是关键字?
相信很多人学习java的过程中都有被告知这两个被称之为保留字,甚至很多面试题中都有这个问题,但是在java官方文档中指出总共有50个关键字,其中包含2个保留字,所以两者之间是从属关系,所以说goto,const是关键字吗?是的
顺便给出标识符的命名规范:
1.java标识符由数字、字母、下划线(_)、美元符号($)、人民币符号(¥中文输入法下Shift+4)组成,但是标识符不能以数字开头,区分大小写,且不能以java中的关键字作为标识符
约定:
1.接口和类名:每个单词的首字母大写,含有大小写。例如HelloWorld,MyClass等
2.常量名:基本数据类型的常量全部使用大写,单词与单词之间使用下划线(_)分隔。例如SIZE_NAME
3.变量名:首字母小写接下来的单词首字母大写,不使用下划线(_),少使用美元符号($)尽量让人一看就知道什么意思
4.方法名:首字母小写接下来的单词首字母大写,少用下划线(_),例如:myName,这种命名方法为驼峰命名法
总结:标识符,关键字,保留字以及字面常量的关系是:标识符包含关键字与字面常量,关键字包含保留字,在网上寻找答案时一切以官方文档以及权威书籍为准,请斟酌后再进行确认。