关键字就是在编程语言中被赋予特定意义的一些单词。
java中关键字共有53个。全部列出如下:
abstract、assert、boolean、break、byte、case、catch、char、class、const、continue、default、do、double、else、enum、extends、false、final、finally、float、for、goto、if、implements、import、instanceof、int、interface、long、native、new、null、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、true、try、void、volatile、while
一个真正的java高手一定对这50个单词了如指掌、信手拈来。说到此处,小编作为一个计算机专业的人,实在惭愧。在前不久应聘一家互联网公司的笔试中就被“instanceof”绊了一脚。吃了大亏的小编回来之后决定荡平java的所有关键字,一雪前耻。
话不多说,面对这看着半生不熟的53个关键字到底应该如何记忆呢?如果按上面的顺序看下去我保证你会找到背单词那种痛不欲生的感觉。
小编多年的学习经验告诉我,对待这样的任务,有一种方式是再适合不过的——分类记忆。
那下面小编就以分类的方式,为大家介绍一下这53个关键字。
53个关键字可分为:51个关键字+2个保留字
1.保留字(2个)
const n.常量,常数 顾名思义它用于修改字段或者局部变量的声明。它指定字段或局部变量的值是常数,不能被修改
goto vi.转到 相当于汇编语言中的jmp,后加标号,作用是改变代码的执行位置,转到标号所在的位置继续执行
2.基本数据类型(8个)
byte 字节类型 系统分配1字节(8bit) 取值范围(-~-1)
char 字符类型 系统分配2字节(16bit) char类型没有负数,所以取值范围(0~65535)
short 短整型 系统分配2字节(16bit) 取值范围(-2^15~2^15-1)
int 整型 系统分配4字节(32bit) 取值范围(-2^31~2^31-1)
long 长整型 系统分配8字节(64bit) 取值范围(-2^63~2^63-1)
float 浮点类型 系统分配4字节(32bit)
double 双精度类型 系统分配8字节(64bit)
boolean 布尔类型 只有true,false两种值
3.访问控制修饰符(3个)
public 用于修饰类和类成员
protected 修饰类成员
private 修饰类成员
关于这三个关键字小编认为很重要,这里主要介绍关键字,不做详细描述,提供给大家两张图,帮助大家理解这三个修饰符的功能。关于具体应该注意的东西,在后面更新的文章中可能会有提到。
4.包相关(2个)
package vt.包装,包裹 为防止项目过大时类目过多导致重复问题,java中常常把一系列相关的类组织在一起,这个组织就叫做包,使用 package定义
import vt.输入,进口,引入 用来引入已经存在的定义好的包
5.类相关(6个)
class 用于类声明
abstract n.抽象 定义抽象类,用在class前
例如:
abstract class A {
……
}
interface n.接口 用来定义接口
extends v.延伸,扩展 用作继承
例如: class 子类名 extends 父类名 {
……
}
implements 用于接口实现
例如: class A implements Printable
new 用于内存的申请(为定义好的数组申请内存空间、类对象的实例化)
6.流程控制相关(10个)
if……else…… 语句
for 循环
while循环
do……while
switch() 分支语句
{ case:
default: }
break 跳出一个循环或者结束循环
continue 立即结束本次循环,开始下次循环
7.异常相关(5个)
try……catch……{finally……} 将可能发生异常的程序放在try catch之间,发生异常执行catch后语句,
不管有没有捕获异常,都会执行finally后语句
throw 针对对象,抛出异常可以是产生的,也可以是自己抛出的,使用throw可以抛出异常
throws 针对方法,此方法不处理异常,交给方法调用处处理
8.this和super (2个)
this this的作用可以总结为以下三点:
(1)调用本类中的成员变量
例如: Public Class Student {
String name; //定义一个成员变量name
private void SetName(String name) { //定义一个参数(局部变量)name
this.name=name; //将局部变量的值传递给成员变量
}
}
this调用的name是本类中被隐藏的成员变量而不是局部变量或者形参。this的作用就是调用本类的成员变量。
(2) 调用本类中的其他构造方法
例如:public class Student { //定义一个类,类的名字为student。
public Student() { //定义一个方法,名字与类相同故为构造方法
this(“Hello!”);
}
public Student(String name) { //定义一个带形式参数的构造方法
}
}
利用this关键字来调用构造方法,只有在无参数构造方法中第一句使用this调用有参数的构造方法。其他使用方法可能会出错。
(3)代表自身类的对象
例如:在程序中可以看到这样的语句 :
return this;
System.out.println(this);
这里的this就代表自身类的对象。
super 用来使用父类中被子类隐藏的方法,常伴随着继承导致的的覆盖出现
9.简单到不用记(5个)
true 真
false 假
null 空
void 空返回值类型
return 返回
10.修饰类、方法、变量的关键字(4个)
static 静态的 可修饰变量和方法,修饰的变量叫类变量或者静态变量,修饰的方法叫静态方法
final 可修饰类、方法、变量,由final修饰的类不能被继承。final修饰的方法不能被子类重写。final修饰的变量为常量。
native 本地的 修饰方法,是java调用非java代码的接口
synchronized 锁 修饰方法,避免造成死锁
11.不常见的几个关键字(5个)
enum 枚举关键字
assert 断言关键字
strictfp
使用关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精 确的,符合IEEE-754规范的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。
注:可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字
transient
1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。
2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。
3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。
volatile
volatile变量是一种比sychronized关键字更轻量级的同步机制
12.特别注意的关键字(1个)
instanceof (经常出现在考试题中)
作用是判断一个对象是否是一个具体类的实例,使用方法:对象名 instanceof 类名
如果是,返回true。不是,则返回false。