java常用关键字

java关键字介绍

java关键字也称为保留字,在语言中具有特殊作用,按照系统规定方式使用。关键字不能作为变量名,函数名等,否则编译器会提示错误。

一.用于定义数据类型的关键字

1.class 说明:表示一个类所占字节:不确定
2.interface 说明:定义一个接口 所占字节:不确定
3.byte 说明:字节数据类型所占字节:1(0000 0000 ~ 1111 1111)注意机器中是以补码存储的
关于原码,反码,补码的介绍:http://blog.chinaunix.net/uid-26495963-id-3074603.html
4.char              说明:字符数据类型        所占字节:2(Unicode),C++中char是占一个字节
5.short 说明:短整型所占字节:2
6.int 说明:整型所占字节:4
7.long 说明:长整型所占字节:8
8.float 说明:浮点型所占字节:4
9.double 说明:双精度浮点性所占字节:8
10.boolean 说明:布尔型 所占字节:1
11:void 说明:空类型

二.定义流程控制的关键字

1.if...else... 条件判断
2.do...while... 循环
3.for(int i=0;i<10;i++)循环
4.switch(条件)case...条件分支,注意加不加break的区别
switch(int c) {
case 1: {语句块1};break; 
case 2: {语句块2}
……?????? ……
case n: {语句块n};break;
default:exit(0);
}
5.break 结束 本层循环
6.continue 结束本次循环
7.return返回特定类型的值
8.try...catch...finally用于异常处理
try{...}中放置可能会发生异常的的语句块,catch(){...}用于抓住异常,{...}定义当出现异常时的处理方法。finally{...}表示不管异常是否发生,都得进行finally{...}中的处理。

三.定义访问权限修饰符的关键字

修饰符访问权限
  说明 本类中 同软件包中 不同包子类中 不同包且无继承

public

公有的 可以 可以 可以 可以
protected 受保护的 可以 可以 可以
default(无权限修饰符) 当前 可以 可以

private 私有的 可以      

四.用于定义类与类之间关系的关键字

1.extends 类继承(或接口继承),创建一个类的子类,java只能单继承
2.implements 接口实现,可以声明自己使用一个或者多个接口
class A extends B implements C,D,E

五.定义建立实例及引用实例,判断实例的关键字

1.new 创建一个新对象,即类的实例化
2.this 指向给对象自身的标识符
3.super 调用基类的构造函数
4.instanceof 判断某个对象是否是自己所需要的对象

六.用于包的关键字

1.package 打包,把java程序写到一个包中
2.import 引入包名,引入一个包中的某个对象或所有对象

七.异常处理的关键字

1.try...catch...finally用于异常处理
try{...}中放置可能会发生异常的的语句块,catch(){...}用于抓住异常,{...}定义当出现异常时的处理方法。finally{...}表示不管异常是否发生,都得进行finally{...}中的处理。
2.throw 抛出用户自定义的异常
3.throws 抛出系统异常

八.其他

1.native
是用作java 和其他语言(如c++)进行协作时用的也就是native 后的函数的实现不是用java写的, native的意思
就是通知操作系统,这个函数你必须给我实现,因为我要使用。所以native关键字的函数都是操作系统实现的,
java只能调用。
2.strictfp

意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。  
你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字,例如下面的代码: 

//1. 合法的使用关键字strictfp 
strictfp interface A {}
public strictfp class FpDemo1 { 
strictfp void f() {} 
} 
//2. 错误的使用方法 
interface A { 
strictfp void f(); 
}
public class FpDemo2 { 
strictfp FpDemo2() {} 
}

一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。

3.transient
用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
介绍:字段不是对象持久的一部分,不应该字段和对象一起串起。
4.volatile
volatile变量一个时间只有一个线程可以访问。 保证线程安全。 
可以被写入 volatile 变量的这些有效值独立于任何程序的状态,包括变量的当前状态。 
所以,Volatile 变量是一种非常简单但同时又非常脆弱的同步机制,它在某些情况下将提供优于锁的性能和伸缩性。
5.assert
在C和C++语言中都有assert关键字,表示断言。
在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。
assert主要进行入口检测,系统核心代码测试等,要达到的目的是让程序员方便的发现自己的逻辑错误, ,并且不影响程序的效率。assert所发现的错误,是完全不应该出现的,是不能用异常代替的。异常,那是系统所允许的,或者是系统不可控的“错误”,它不是程序员的逻辑问题。
6.abstract
抽象的意思,可以用定义抽象类,抽象函数。抽象类的用法规则如下:
a,用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,这个方法叫做抽象方法;
b,含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写;
c,抽象类不能被实例化;
d,抽象方法只需声明,而不需实现。



你可能感兴趣的:(java)