Java关键字及其作用
一、 关键字总览:
访问控制 | private | protected | public | ||||||
类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native | new | static |
strictfp | synchronized | transient | volatile | ||||||
程序控制 | break | continue | return | do | while | if | else | for | instanceof |
switch | case | default | |||||||
错误处理 | try | cathc | throw | throws | |||||
包相关 | import | package | |||||||
基本类型 | boolean | byte | char | double | float | int | long | short | null |
true | false | ||||||||
变量引用 | super | this | void | ||||||
保留字 | goto | const |
二、 详细解释
1. 访问控制
1) private 私有的
private
2) protected 受保护的
protected
3) public 公共的
public
2. 类、方法和变量修饰符
1) abstract 声明抽象
abstract关键字可以修改类或方法。abstract类可以扩展(增加子类),但不能直接实例化。abstract方法不在声明它的类中实现,但必须在某个子类中重写。采用
2) class类
class
3) extends 继承、扩展
extends
4) final 最终、不可改变
final
5) implements实现
implements
6) interface 接口
interface
接口是
实现了接口的任何类都必须提供在该接口中的所有方法的实现。一个类可以实现多个接口。
7) native 本地
native
8) new 新,创建
new
new
参数集合必须与类的构造方法的签名匹配。
=
9) static 静态
static
通常,static
static(内部)类可以被其他类实例化和引用(即使它是顶级类)。在上面的示例中,另一个类中的代码可以实例化
static
可以从类的外部调用
模式:public
10) strictfp 严格,精准
strictfp的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令人满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果想让浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。
可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字
11) synchronized线程、同步
synchronized
synchronized
如果应用于静态方法,那么,当该方法一次由一个线程执行时,整个类将被锁定。
如果应用于实例方法,那么,当该方法一次由一个线程访问时,该实例将被锁定。
如果应用于对象或数组,当关联的代码块一次由一个线程执行时,对象或数组将被锁定。
12) transient 短暂
transient
当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。
13) volatile 易失
volatile
注意:volatile
Java
3. 程序控制语句
1) break 跳出,中断
break
break
2) continue 继续
continue
continue
3) return 返回
return
如果方法具有非
返回值两侧的括号是可选的。
4) do 运行
do
do
条件表达式后面必须有分号。
5) while 循环
while
6) if 如果
if
if
包含
7) else 否则
else
8) for 循环
for
for
控件流进入
每次执行循环体之前将计算
每次执行循环体之后,在计算下一个迭代的
9) instanceof 实例
instanceof
10) switch 观察
switch
switch
case
如果没有
11) case 返回观察里的结果
case
case
如果没有
12) default 默认
default
default
如果没有
4. 错误处理
1) try 捕获异常
try
每个
如果某个特定异常类未被任何
2) catch 处理异常
catch
开始和结束标记
每个
如果某个特定异常类未被任何
3) throw 抛出一个异常对象
throw
throw
引发非
4) throws 声明一个异常可能被抛出
throws
throws
引发非
要在
5. 包相关
1) import 引入
import
当多个包包含同名的类时,许多
2) package 包
package
package
例:java.lang.Object。
如果
6. 基本类型
1) boolean 布尔型
boolean
boolean
包含
Boolean
2) byte 字节型
byte
Byte
Java
3) char 字符型
char
可以使用下列
Character
char
4) double 双精度
double
由于浮点数据类型是实际数值的近似值,因此,一般不要对浮点数值进行是否相等的比较。
Java
5) float 浮点
float
使用此关键字时应遵循下列规则:
Java
由于浮点数据类型是实际数值的近似值,因此,一般不要对浮点数值进行是否相等的比较。
Java
6) int 整型
int
Integer
Java
7) long 长整型
long
Long
Java
8) short 短整型
short
Short
Java
9) null 空
null
将
不能将
10) true 真
true
11) false 假
false
7. 变量引用
1) super 父类,超类
super
作为独立语句出现的
super.()
2) this 本类
this
当引用可能不明确时,可以使用
3) void 无返回值
void
void
8. 保留字
正确识别java语言的关键字(keyword)和保留字(reserved
识别java语言的关键字,不要和其他语言如c/c++的关键字混淆。
const和goto是java的保留字。
1) goto 跳转
goto
2) const 静态
const
3) native 本地
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。
可以将native方法比作Java程序同C程序的接口,其实现步骤:
1、在Java中声明native()方法,然后编译;
2、用javah产生一个.h文件;
3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);
4、将第三步的.cpp文件编译成动态链接库文件;
5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。