java的53个关键字(含2个保留字)第一篇
1.java的关键字(keyword)有多少个?
51+2个保留字=53个关键字(java的关键字都是小写的!!)
2.java的保留字(reserve word)有多少个?问题:分别是什么?
1).const 有道释义:n. 常量,常数
用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改
2).goto 有道释义:vi. 转到
指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
(一)、定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(共6个)
关键字 | 意思 | 备注,常用 |
class | 类 | public class A(){} 花括号里有已实现方法体,类名需要与文件名相同 |
interface | 接口 | public interface B(){} 花括号里有方法体,但没有实现,方法体句子后面是英文分号“:”结尾 |
abstract | 声明抽象 | public abstract class C(){} 介于类与接口中间,可以有也可以没有已经实现的方法体 |
implements | 实现 | 用于类或接口实现接口public class A interface B(){} |
extends | 继承 | 用于类继承类 public class A extends D(){} |
new | 创建新对象 | A a=new A(); A表示一个类 |
(二)、包的关键字(共2个)
关键字 | 意思 | 备注,常用 |
import | 引入包的关键字 | 当使用某个包的一些类时,仅需类名 然后使用ctrl+shift+o或者选定类名(类或属性或方法)按住ctrl+单击 即可自动插入类所在的包。如:JFrame 快捷键之后自动加入import javax.swing.JFrame; |
package | 定义包的关键字 | 将所有有关的类放在一个包类以便查找修改等。如:package javake.flycat.draw002; |
(三)、数据类型的关键字(共12个)
关键字 | 意思 | 备注,常用 |
byte | 字节型 | 8bit |
char | 字符型 | 16bit |
boolean | 布尔型 | -- |
short | 短整型 | 16bit |
int | 整型 | 32bit |
float | 浮点型 | 32bit |
long | 长整型 | 64bit |
double | 双精度 | 64bit |
void | 无返回 | public void A(){} 其他需要返回的经常与return连用 |
null | 空值 | |
true | 真 | |
false | 假 |
(四)、错误处理(共5个)
关键字 | 意思 | 备注,常用 |
catch | 处理异常 | 1.try+catch 程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。然后执行catch块后面的语句 2.try+catch+finally 程序的流程是:运行到try块中,如果有异常抛出,则转到catch块,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。 如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后面的语句 3.try+finally 程序的流程是:运行到try块中,如果有异常抛出的话,程序转向执行finally块的代码。那末finally块后面的代码还会被执行吗?不会!因为你没有处理异常,所以遇到异常后,执行完finally后,方法就已抛出异常的方式退出了。 这种方式中要注意的是,由于你没有捕获异常,所以要在方法后面声明抛出异常(来自网上的资料) |
try | 捕获异常 | |
finally | 有没有异常都执行 | |
throw | 抛出一个异常对象 | 一些可以导致程序出问题的因素,比如书写错误,逻辑错误或者是api的应用错误等等. 为了防止程序的崩溃就要预先检测这些因素,所以java 使用了异常这个机制.在java中异常是靠 "抛出" 也就是英语的"throw" 来使用的,意思是如果发现到什么异常的时候就把错误信息 "抛出" |
throws | 声明一个异常可能被抛出 | 把异常交给他的上级管理,自己不进行异常处理 |
(五)、访问修饰符的关键字(共3个)
关键字 | 意思 | 备注,常用 |
public | 公有的 | 可跨包 |
protected | 受保护的 | 当前包内可用 |
private | 私有的 | 当前类可用 |
下图更加直观描述访问修饰符和默认修饰符(不写)的区别
修饰符 | 当前类 | 同 包 | 子 类 | 其他包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
总结:类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。Java中,外部类的修饰符只能是public或默认,类的成员(包括内部类)的修饰符可以是以上四种。
(六)、条件循环(流程控制)(共12个)
关键字 | 意思 | 备注,常用 |
if | 如果 | if(){} 如果小括号里面怎么怎么样 花括号就怎么怎么样 |
else | 否则,或者 | 常与if连用,用法相同 |
while | 当什么的时候 | while 怎么样就do什么 while(){} |
for | 满足三个条件时 纠正:for并不是满足三个条件时,它只有一个条件 | for ( ; ; ){} |
switch | 开关 | switch(表达式) { case 常量表达式1:语句1; .... case 常量表达式2:语句2; default:语句; } default就是如果没有符合的case就执行它,default并不是必须的. case后的语句可以不用大括号. switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.(纠正:switch还接受枚举类型) |
case | 返回开关里的结果 | |
default | 默认 | |
do | 运行 | 长与while连用 |
break | 跳出循环 | |
continue | 继续 | 中断本次循环,并并开始下一次 |
return | 返回 | return 一个返回值类型 (纠正:return有两个作用,一是返回,二是终止) |
instanceof | 实例 | 一个二元操作符,和==,>,<是同一类的。测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据 (纠正: instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。) |
(七)、枚举和断言(共2个)
关键字 | 意思 | 备注,常用 |
enum | 枚举,列举型别 | enum是定义枚举 |
assert | 断言 | assert断言在代码测试时比较实用。 |
(八)、修饰方法、类、属性和变量(共9个)
关键字 | 意思 | 备注,常用 |
static | 静态的 | 属性和方法都可以用static修饰,直接使用类名.属性和方法名。 只有内部类可以使用static关键字修饰,调用直接使用类名.内部类类名进行调用。 static可以独立存在。静态块 总结static的4个作用: 1、修饰成员变量和方法 2、声明静态语句块 3、声明静态内部类 4、jdk1.5引入—静态导包 |
final | 最终的不可被改变的 | 方法和类都可以用final来修饰 final修饰的类是不能被继承的 final修饰的方法是不能被子类重写。常量的定义:final修饰的属性就是常量。 |
super | 调用父类的非私有方法 | 常见public void paint(Graphics g){super.paint(g); ··· } |
this | this是指代当前类的对象 | 调用当前类中的方法(表示调用这个方法的对象)this.addActionListener(al):等等 |
native | 本地 | |
strictfp | 严格,精准 精确浮点 | strictfp 的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运 行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个 类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确, 而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp |
synchronized | 线程,同步 | |
transient | ['tr?nz??nt]短暂 | 变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。换句话来说就是,用transient关键字标记的成员变量不参与序列化过程。 |
volatile | ['v?l?ta?l]易失 | volatile是一个类型修饰符(type specifier),就像大家更熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量。volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。 |