关键字: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等。
其实个人认为关键字其实就是电脑语言自己定义的词语,每个词语代表不同的意思,能够被电脑识别,这些关键字的存在简化了编程,就好像数学公式一般可以解决实际问题。所以有些人觉得自己英语不好就觉得编程难学挺没道理,只要学会这些关键字并了解怎么用,那么在使用的时候将其组合起来,整个编程就会很简单。
毕竟编程还是看重的算法+数据结构,思维能力更加重要。