Java基础总结 (一)Java中的关键字和保留字

什么是关键字和保留字

在Java中一些有特殊含义和用途的词叫做关键字,而保留字是预留的关键字。现在保留字并没有特殊含义但是在将来可能被赋予特殊的含义或用途。所以在程序中一定要避免使用关键字和保留字作为变量名或者类名使用。

在Java官方文档中一共有50个关键字其中有两个是保留字。还有三个特殊的单词null、true、false,这三个不属于关键字但是属于标识符。标识符一共有53个,包括null、true、false和所有关键字。

关键字的含义和作用

访问修饰符的关键字

关键字

含义

备注

public

公有的

可跨包

protected

受保护的

在当前包内可用

private

私有的

仅在当前类可用

定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象

关键字

含义

备注

class


public class A{ } class B{ }

声明两个类A和B,在一个java文件中有且只能有一个类的访问修饰符为public

interface

接口

public interface C{ }

声明一个接口C

abstract

抽象声明

public abstract class D{ }

声明一个抽象类

implements

实现接口

public class A implements C { }

声明一个类A实现接口C

extends

继承

public class B extends calss A { }

声明一个类B继承类A

new

创建新对象

A a = new A();

创建一个类A的对象a

包关键字

关键字

含义

备注

import

引入包的关键字

需要使用其他包中的类时用import引入包名

package

包名关键字

标识类在包中的位置

数据类型关键字

关键字

含义

备注

char

字符型

16bit、1字节

boolean

布尔型

true、false

byte

字节型

8bit、1字节 -128~127

short

短整型

16bit、2字节 -215~2^15-1

int

整型

32bit、4字节 -231~2^31-1

long

长整型

64bit、8字节 -263~2^63-1

float

单精度浮点型

32bit、4字节 -3.403E38~3.403E38

double

双精度浮点型

64bit、8字节 -1.798E308~1.798E308

void


返回类型为空(无返回值)并不是数据类型

enum

枚举型

定义枚举中的对象都是唯一的 并不是数据类型

流程控制关键字

关键字

含义

备注

if

if条件语句的标识

if( ){ }

else

if条件语句不成立时的分支标识

if( ){ } else if { } else { }

while

while循环的标识

while( ){ }

do

do-while循环的标识

do{ } while( )

for

for循环的标识

for(;;){ }

switch

分支结构语句的标识

switch(表达式){

 case 表达式1:语句1;

 break;

 case 表达式2:语句2:

 break;

 default:语句

}

switch的表达式支持byte、int、short、char,JavaSE1.7版本以后支持String

case

switch语句中的分支

default

switch语句中的默认分支

当所有case都不符合条件时执行default中的语句

break

跳出循环

跳出循环体

continue

跳出本次循环

跳出循环体,执行下一次循环

return

返回

return “123”; 返回一个值

instanceof

判断是否为该类型实例

a instanceof A; 返回值为boolean类型

assert

用于断言

修饰类、方法、属性、变量的关键字

关键字

含义

备注

static

静态的

  如果一个成员被声明为static时,静态成员所在的类被加载的同时创建static成员,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。

  声明为static的变量称为静态变量或类变量。可以直接通过类名引用静态变量,也可以通过实例名来引用静态变量,但最好采用前者,因为后者容易混淆静态变量和一般变量。静态变量是跟类相关联的,类的所有实例共同拥有一个静态变量。

  声明为static的方法称为静态方法或类方法。静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法。静态方法中不能使用this关键字,因为静态方法不属于任何一个实例。静态方法不能被子类的静态方法覆盖。

final

最终的

  被final修饰的属性变量就是常量

  被final修饰的类不能被继承

  被final修饰的方法不能被子类重写

super

指向当前实例对象的父类

  表明当前对象的父类型的引用或者父类型的构造方法

this

指向当前实例对象的引用

  当引用可能不明确时,可以使用this关键字来引用当前的实例。

native

本地

  用native修饰的方法指示出该方法是用Java以外的语言实现的

strictfp

严格、精准

  使Java编译器以及JVM对浮点运算更加精确

synchronized

线程、同步

  synchronized关键字可以应用于方法或语句块,并为一次只应由一个线程执行的关键代码段提供保护。

  如果应用于静态方法(如上例中的MySyncStaticMethod),那么,当该方法一次由一个线程执行时,整个类将被锁定。

  如果应用于实例方法(如上例中的MySyncMethod),那么,当该方法一次由一个线程访问时,该实例将被锁定。

  如果应用于对象或数组,当关联的代码块一次由一个线程执行时,对象或数组将被锁定。

transient

短暂

  用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列化时被序列化。

volatile

易失

  volatile关键字用于表示可以被多个线程异步修改的成员变量。volatile的目标用途是为了确保所有线程所看到的指定变量的值都是相同的。

异常处理关键字

关键字

含义

备注

catch

异常处理

  catch关键字用来在try-catch或try-catch-finally语句中定义异常处理块。

  如果某个特定异常类未被任何catch子句处理,该异常将沿着调用栈递归地传播到下一个封闭try块。如果任何封闭try块都未捕获到异常,Java解释器将退出,并显示错误消息和堆栈跟踪信息

try

捕获异常

  try关键字用于包含可能引发异常的语句块。

finally

try块的一部分

  每个try块都必须至少有一个catch或finally子句。

  如果执行try块的任何部分,不论是否出现异常,也不论try或catch块是否包含return、continue或break语句,都一定会执行finally块中的代码。

  如果不出现异常,控件将跳过try块,进入finally块。

  如果在执行try块期间出现异常,并且相应的catch块包含break、continue或return语句,控件将首先穿过finally块,之后再执行break、continue或return。

throw

抛出一个异常对象

  throw语句将java.lang.Throwable作为参数。Throwable在调用栈中向上传播,直到被适当的catch块捕获

throws

声明一个异常可能被抛出

  throws 关键字可以应用于方法,以便指出方法引发了特定类型的异常。

  throws 关键字将逗号分隔的 java.lang.Throwables 列表作为参数。 引发非 RuntimeException 异常的任何方法还必须在方法声明中使用 throws 修饰符来声明它引发的异常。 要在 try-catch 块中包含带 throws 子句的方法的调用,必须提供该方法的调用者。