关键字

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,这里说一下一般包名会以官网的倒序来命名。
这些都只是最常用的一些规范,具体到每个项目组,每个公司之间的规范可能都不相同并且都更加严格,毕竟一个大型项目很难由一个人独立完成,那么就需要一系列的规范让别人能更方便简单的看懂你的代码,这样才能提升整体的工作效率。

总结

这一章就结束了,其实没有太多难度,主要还是一个混脸熟为主,以后看到一个词能反应过来这是一个关键字,以及看到一个标识符的命名能够看出来他是否是符合规则的,这是通过编译的基础,其次是看出是否符合规范,如果不符合规范,怎么修改能让他符合规范。