java关键字总结
关键字指的就是电脑语言中事先定义好,有其独特意义的标识符,专门提供给电脑语言识别的词语,所以它不能作为变量名、方法名、类名、包名或参数名等等。
在java中,总共有51个关键字,2个保留字,其中"const"和"goto"是其他电脑语言的关键字,所以在java当中没有具体含义。
接下来就看看每一个关键字的作用。
关键字列表
访问控制:private protected public
定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象:class abstact interface extends implements new
修饰方法、类、属性和变量:static final super this native strictfp synchronized transient volatile
程序控制语句:break continue return do while if else for
instanceof switch case defautl
错误处理:try catch final throw throws assert
包相关:import package
基本类型:boolean byte char double float int long short
null true false enum
变量引用:super this void
保留字:const goto
每个关键字解析
访问控制:
-
private 私有的,只能被类本部使用
-
protected 受到保护的,可以被类本部、本包和子类使用
-
public 公有的,可以被任意使用,类本部、本包,子类和外部包
1、外部类只能被public和默认修饰,个人认为其原因是如果类具有局限性,那么其他类在使用的时候就不方便,设计者就干脆不允许这种行为。
2、default的范围是弱于protected的,default只能被本包和类本部使用
定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象:
-
class 创建一个类
-
abstract 定义抽象类或者抽象方法,子类必须实现父类所有方法,除非子类也是抽象类。抽象类中不一定全是抽象方法,可以是具体方法或私有变量
-
interface 定义接口,java不支持多重继承,但是支持一个类实现多个接口。接口中的类必须是Public static,变量必须是public static finaly。
-
extends 继承,java只支持继承一个类。
-
implements 实现接口的声明。
-
new 创建一个新的对象的声明。
修饰方法、类、属性和变量
-
static 静态声明,可以在没有创建对象的情况下进行调用,不能使用super和this,用于静态方法、静态变量、内部类。静态方法不能调用非静态方法,但是非静态方法可以调用静态方法。
-
final 最终不可被改变的,修饰的类不能被继承、修饰的方法不能被重写、修饰的变量不可以被改变地址、jvm会自动监测final并为其尝试寻求内联,可以提升java的效率、被final修饰的常量,在编译阶段会存入调用类的常量池当中
-
native java调用非java接口,即方法所对应的实现不是在当前文件,而是在用其他语言实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。
-
strictfp 用于让类、接口或者方法都处于精确运算的环境下。不允许对接口中的方法以及构造函数声明strictfp关键字。
-
synchronized 同步互斥,用于线程同步的时候,对方法进行加锁操作,只能让一个线程运行。
-
volatile 用其修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最新值。用于进行线程并发处理时候对于缓存一致性和保持原子性操作。目的是为确保所有线程读取到指定变量的值都是相同的。
1、表示可以被多个线程异步修改的成员变量
2、由于使用volatile屏蔽掉了VM中必要的代码优化,所以在效率上比较低
3、在很多java虚拟机上面未实现该功能 -
transient 在java当中可以使用serialization进行序列化对象操作,如果希望一个特殊的对象数据成员不被序列化,那么使用transient就可以让其不被序列化。
程序控制语句
- if 如果,适用于判断语句
- else 否则,用于判断语句分支语句
- while 当什么时候,循环语句的一种,适用于当什么执行什么
- for 满足三个条件的循环语句,for(单次表达式;条件表达式;末尾循环体)。用于指定一个在每次迭代结束前检查其条件的循环。
- switch 用于基于某个表达式选择执行某种代码块中的一个。switch 条件的计算结果必须等于 byte、char、short 或 int。如果没有break,那么会一直执行下去
- case 用于switch中标记每个分支,case需要用break来进行结束。
- default 用于switch中作为最后处理方式;用于泛型定义中使用default关键字代表不确定的变量或者参数。
- do 用于指定一个在每次循环结束之后就会检查其条件的循环。条件表达式后面必须有分号、do while必须执行一次
- break 用于循环中退出自身的循环
- continue 用于循环中某单次循环不继续执行,但是整个循环照常执行
- return 使方法返回到调用它的方法,从而传递与返回方法的返回类型匹配的值
- instanceof 用于确定对象所属的类,通常用于判断父类或者接口的引用是否是某个子类的实例
错误处理
- try 捕获异常,用来监视可能发生异常的代码,可以跟catch,也可以跟Final组合使用。
- catch 异常出错处理。
- finally 无论异常是否发生都会执行。有一种情况Try+finally,不出现异常则全部出现,如果出现异常就会跳到finally,然后后面的代码就不会执行了,因为异常未捕获,会中断代码执行。
- throw 人为抛出异常
- throws 在方法或者类上加,将内部出现的异常抛到上一层进行处理。
包相关
- impor 引用包的关键字
- package 指定在 Java 源文件中声明的类所驻留的 Java 包。
基本类型
- byte 字节型,用于定义临时变量、形参、属性的数据类型。1byte
- char 字符类型.2byte.
- boolean 布尔类型,true和false
- short 短整形,2byte.
- int 整形,4byte
- float 浮点数,4byte
- long 长整型,8byte
- double 双精度,8byte
- null 空值,表示内存当中没有这个对象空间,将 null 赋给非原始变量相当于释放该变量先前所引用的对象。Null不能被赋值给原始数据类型。
- true 真,布尔值的字面值。
- false 假,布尔值的字母值。
变量引用
- super 表示当前对象的父类对象的一个引用
- this 引用自身的指针,只能在非静态方法中使用。
- void 无返回,可以用作方法的返回类型
保留字
- const 常量。用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改
- goto 跳转。指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
总结
至此,所有关键字都已经解释完成了,有了个初步印象,有些关键字仅仅了解就可以了,比如基本数据类型关键字,访问权限控制关键字等;有些关键字就需要慢慢仔细研究,比如static、final、synchronized等。
其实个人认为关键字其实就是电脑语言自己定义的词语,每个词语代表不同的意思,能够被电脑识别,这些关键字的存在简化了编程,就好像数学公式一般可以解决实际问题。所以有些人觉得自己英语不好就觉得编程难学挺没道理,只要学会这些关键字并了解怎么用,那么在使用的时候将其组合起来,整个编程就会很简单。
毕竟编程还是看重的算法+数据结构,思维能力更加重要。