6.11 修饰符的适用范围

6.10 修饰符的适用范围

表6.3 Java修饰符适用范围总表

这里有一张图片
在表6.3中,包访问控制符是一个特殊的修饰符,不用任何访问控制符的就是包访问控制。
对于初始化块局部成员而言,它们不能使用任何访问控制符,所以看起来像是使用了包访问控制符。

strictfp关键字

strictfp关键字的含义是FP-strict,也就是精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字,Java的编译器和运行时环境在浮点运算上不一定令人满意。一旦使用了strictfp来饰类、接口或者方法时,那么在所修饰的范围内Java的编译器和运行时环境会完全依照浮点规范正IEEE-754来执行。因此,如果想让浮点运算更加精确,就可以使用strictfp关键字来修饰类、接口和方法

native关键字

native关键字主要用于修饰一个方法,使用native修饰的方法类似于一个抽象方法。与抽象方法不同的是, native方法通常采用C语言来实现。如果某个方法需要利用平台相关特性,或者访问系统硬件等,则可以使用native修饰该方法,再把该方法交给C语言去实现。一旦Java程序中包含了native方法,这个程序将失去跨平台的功能。

4个访问控制符只能出现其中之一

在表6.3列出的所有修饰符中,4个访问控制符是互斥的,最多只能出现其中之一。

不能和abstract同时使用的修饰符

不仅如此,还有abstractfinal永远不能同时使用;
abstractstatic不能同时修饰方法,可以同时修饰内部类;
abstractprivate不能同时修饰方法,可以同时修饰内部类
privatefinal同时修饰方法虽然语法是合法的,但没有太大的意义,由于private修饰的方法不可能被子类重写,因此使用final修饰没什么意义。