修饰符与关键字

访问控制符:
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     catch    finally    throw     throws

 

包相关:
import     package


基本类型:
boolean      byte       char      double     float        int      long      short      null     true      false

 

变量引用:
super     this      void

 

保留字:
goto      const

 

 

native  (本地)
native 关键字可以应用于方法,以指示该方法是用 Java 以外的语言实现的。

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

transient  (短暂)
transient 关键字可以应用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列化时被序列化。

当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。

Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。

transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。


volatile  (易失)
volatile 关键字用于表示可以被多个线程异步修改的成员变量

注意:volatile 关键字在许多 Java 虚拟机中都没有实现。 volatile 的目标用途是为了确保所有线程所看到的指定变量的值都是相同的。

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。

instanceof  (实例)
instanceof 关键字用来确定对象所属的类。

throw (抛出一个异常对象)

throw 关键字用于引发异常。

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

引发非 RuntimeException 异常的任何方法还必须在方法声明中使用 throws 修饰符来声明它引发的异常。

throws (声明一个异常可能被抛出)

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

throws 关键字将逗号分隔的 java.lang.Throwables 列表作为参数。

引发非 RuntimeException 异常的任何方法还必须在方法声明中使用 throws 修饰符来声明它引发的异常。

要在 try-catch 块中包含带 throws 子句的方法的调用,必须提供该方法的调用者。

 

其他:

1) goto 跳转

goto 保留关键字,但无任何作用。结构化程序设计完全不需要 goto 语句即可完成各种流程,而 goto 语句的使用往往会使程序的可读性降低,所以 Java 不允许 goto 跳转。

2) const 静态

const 保留字,是一个类型修饰符,使用const声明的对象不能更新。与final某些类似。

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中被访问了。

 

posted @ 2018-07-11 21:23  要死要活的程序猿啊  阅读(226)  评论(0编辑  收藏  举报