Java修饰符总结

Java修饰符

下表列出所有Java修饰符,并说明了各自能修饰的Java结构种类和作用

修饰符 用于 意义

abstract

接口
方法
这个类不能被实例化,而且可能包含未实现的方法 
所有接口都是抽象的。声明接口时这个修饰符是可选的 
这个方法没有主体,主体由子类提供。签名后面是一个分号。
所在的类必须也是抽象的。
default 方法 这个接口方法的实现是可选的。接口为不想实现这个方法的类
提供了一个默认实现。
final 类 
方法 
字段 
变量 
不能创建这个方法的子类 
不能覆盖这个方法 
这个字段的值不能改变。static final 修饰的字段是编译时常量 
值不能改变的局部变量、方法参数或异常参数
native 方法 这个方法使用某种与平台无关的方式实现(经常用C语言)没有提
供主体,签名后面是一个分号
无(包) 类 
接口 
成员
没声明为public的类只能在包中访问 
没声明为public的接口只能在包中访问 
没声明为private、protected或public的成员具有包可见性,
只能在包中访问
private 成员 这个成员只在定义它的类中可以访问
protected 成员 这个成员只在定义它的包中和子类中可以访问
public 类 
接口 
成员 
能访问所在包的地方都可以访问这个类 
能访问所在包的地方都可以访问这个接口 
能访问所在类的地方都可以访问这个成员
strictfp 类 
方法
这个类的所有方法都隐式声明为strictfp
这个方法必须使用严格遵循IEEE 754标准的方法执行浮点运算。
具体而言,所有数值,包含中间结果,都要使用IEEE float或
double类型表示,而且不能利用本地平台浮点格式或硬件提供
的额外精度或取值范围。这个修饰符极少使用。
static 类 
方法 
字段 

初始化
程序
使用static声明的内部类是顶层类,而不是所在类的成员。
static方法是类方法。不隐式传入this对象引用。可通过类名调用
static字段是类字段。不管创建多少类实例,这个字段只有
一个实例,可通过类名访问。
这个初始化程序在类加载时运行,而不是创建实例时运行。
synchronized 方法 这个方法对类或实例执行非原子操作,所以必须小心,确保不能
让两个线程同时修改类或实例。对于static方法而言,执行方法
之前先为类获取一个锁。对于非static方法而言,会为具体的对
象实例获取一个锁。
transient 字段 这个字段不是对象持久化状态的一部分,因此不会随对象一起
序列化。在对象序列化时使用,参见
java.io.ObjectOutputStream
volatile 字段 这个字段能被异步线程访问,因此必须对其做些特定的优化。
这个修饰符有时可以代替synchronized

猜你喜欢

转载自blog.csdn.net/qq_41405257/article/details/80304435