修饰符的适用范围

时间:2022-04-24 21:08:08


外部类/接口 成员属性 方法 构造器 初始化块 成员内部类 局部成员
public

protected


包访问控制符
private


abstract



final

static


strictfp



synchronized





native





transient





volatile





default






strictfp关键字的含义是FP-strict,也就是精确浮点的意思。在java虚拟机运行浮点运算时,如果没有指定strictfp关键字,java的编译器和运行时环境在浮点运算上不一定令人满意。一旦使用了strictfp来修饰类、接口或者方法时,那么在所修饰的范围内Java的编译器和运行时环境会完全一招浮点规范IEEE-754来执行。因此,如果想让浮点运算更加精确,就可以使用strictfp关键字来修饰类、接口或者方法。 native关键字主要用于修饰一个方法,使用native修饰的方法类似于一个抽象方法。与抽象方法不同的是,native方法通常采用C语言来实现。如果某个方法需要利用平台相关特性,或者访问系统硬件等,则可以使用native修饰该方法,再把该方法交给C去实现。一旦Java程序中包含了native方法,这个程序将失去跨平台的功能。 abstract和final不能同时使用;abstract和static不能同时修饰方法,可以同时修饰内部类;abstract和private不能同时修饰方法,可以同时修饰内部类。private和final同时修饰方法语法上合法,但没有意义——由于private修饰的方法不可能被子类重写,因此使用final修饰没什么意义。