abstract
修饰接口:接口隐式地被指定为abstract和public的。
修饰类:所修饰的类为抽象类,不能被实例化;继承了抽象类的子类要么实现了父类的所有抽象方法要么声明为一个抽象类。
修饰方法:所修饰的方法为抽象方法,没有方法体。
不能与final连用。
权限修饰符 public protected private
权限修饰符可以修饰类、成员变量、方法、成员内部类。特别的,类只能被指定为public的或者缺省的。在网上找了一张图,可以很好地帮助记忆各个权限的范围。
final
修饰类:所修饰的类为最终类,不能被继承。String为final类。
修饰方法:被修饰的方法不能被重写。被private修饰的方法隐式地被指定为final的。
修饰变量:被修饰的变量其实为常量,只能被赋值一次。必须在定义时或者在构造方法中或者在代码块中对final变量进行初始化。final变量一般用大写字母命名,词与词之间用下划线分隔。对于final double d = Math.random(),d在编译时的值还未确定,可以不用大写字母命名。
修饰参数:被修饰的参数在方法内不能被改变。
static
修饰方法:被修饰方法又称类方法,类方法不与实例对象相关联,可以通过类名直接调用。
修饰成员:被修饰的成员变量又称类成员,所有此类的实例对象共享这一类成员。可修饰成员内部类。局部变量不能为static。
修饰代码块:被修饰的代码块称为静态代码块,随着类的加载而加载,只会被加载一次。
transient
修饰成员变量:被修饰的成员不会被序列化。
synchronized
修饰方法:被修饰的方法会被加上“锁”,用于实现线程的同步。
修饰代码块:为某一段代码加上“锁”,可以指定用哪一个对象上“锁”。
volatile
修饰变量:修饰多线程中的共享数据。
scrictpf
修饰接口、类
native
修饰本地方法
(本文用到的图片来自互联网)