关键字
Java 中的关键字是事先设定好的,有特殊意义的单词,在 Java 中所有的关键字都是小写的。
我们先看下 Java 中有哪些关键字和他们的含义
关键字 | 含义 |
abstract | 表明类或者成员方法具有抽象属性 |
assert | 断言,用来进行程序调试 |
boolean | 基本数据类型之一,声明布尔类型的关键字 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 声明一个类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
别被这么多关键字吓到,并不需要死记硬背,在后续的学习中会慢慢接触到这些关键字的,现在要做的只是混个脸熟。 | |
让我们来看一下我们之前写的第一个程序 |
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
可以发现这个程序有很多关键字:public,class,static,void。这么一个非常简单的程序都有这么多关键字,可以看出关键字确实是 Java 非常重要的组成部分,大家需要经常看看这些关键字,混个脸熟不要讲标识符取成关键字。
标识符
我们上文说了不要讲标识符取成关键字,那么什么是标识符呢。
标识符:用来给 Java 中的类,变量,对象,接口等命名的名字就是标识符。
标识符就是你给一些东西取得名字,是可以自定义的,那么可以随便取吗?答案明显是不可以的,首先我们上文说了标识符不能取成关键字,你可以把关键字理解成一种特殊的标识符,这种标识符是提前占好位置的你就不能用了。这里就可以总结出标识符的另一个规则,他是唯一的,不应该重复。
另外,标识符有一些命名规则:
1. 标识符只能由字母,数字,下划线,美元符号组成,不能有其他符号,没有长度限制。
2. 标识符不能以数字开头。
3. 标识符严格区分大小写。
再加上不能以关键字作为标识符,这就是全部的命名规则了。这些在日后的编码过程中会慢慢体会到
标识符规范
了解了标识符规则以后,我们还要看一下命名的规范,这有什么区别呢?
规则是你必须遵守的,是一种语法要求,你如果不遵守规则,那么程序将无法编译通过,而规范是大家一般的命名约定,这会让你的代码更具有可读性,这在我的理解中非常符合开源的精神。
下面将会介绍一些通用的规范:
1. 尽量见名知意,例如userName表示用户名,password表示密码,你当然可以用aaa表示用户名,用bbb表示密码,但是这样如果不加注释,过几天你就不知道自己当时在写啥了,而如果加注释这不是给自己添加工作量吗。
2. 驼峰命名法:单词首字母使用大写来分割每个单词,这样将单词分割开,可以很好的阅读到标识符的含义。例如getUserName,这样后期重新读代码不一定需要注释技能了解到这个方法的作用,如果是getusername这样较短的还好,如果是四五个甚至更多的单词组成的标识符,就会很难辨认。
3. 变量名和方法名首字母小写,我上面举的一个getUserName的例子,就是一个首字母小写,后续每个单词的首字母大写的例子,这是符合驼峰命名法的。
4. 类名和接口名首字母大写,后面每个单词的首字母大写,这也符合驼峰命名法。
5. 常亮的命名需要全部大写,并且每个单词之间用下划线分割,例如THE_FIRST_DAY_OF_WEEK。
6. 包名全部小写,例如 cloud.rikka,这里说一下一般包名会以官网的倒序来命名。
这些都只是最常用的一些规范,具体到每个项目组,每个公司之间的规范可能都不相同并且都更加严格,毕竟一个大型项目很难由一个人独立完成,那么就需要一系列的规范让别人能更方便简单的看懂你的代码,这样才能提升整体的工作效率。
总结
这一章就结束了,其实没有太多难度,主要还是一个混脸熟为主,以后看到一个词能反应过来这是一个关键字,以及看到一个标识符的命名能够看出来他是否是符合规则的,这是通过编译的基础,其次是看出是否符合规范,如果不符合规范,怎么修改能让他符合规范。