一、final关键字:
final类:不能再继承。
final方法:不能再重写。
final变量:不能再修改,初始化后不能再修改。是变量本身不能再修改,对于变量中的元素师可以修改的。
public class Demo01 {
public static void main(String[] args){
final int[] ary = {3,4,5};
//ary = null;//编译错误,ary变量不能修改
ary[1]++;//可以修改,对象的元素可以修改
System.out.println(Arrays.toString(ary));
final String[] names = {"tom","jerry"};
names[1] = "andy";
final Foo foo = new Foo();
foo.a = 8;
}
}
class Foo{
int a= 5;
}
二、static 关键字:
static 静态的:修饰类级别的方法和变量,只能在类体中使用。
静态属性(成员变量):属于类的属性,在类加载期间初始化。静态属性只有一份,这个一份是指由该类实例化后的多个对象公用这一个变量,类似于其他语言的全局变量。 使用类名访问。
.java源文件--编译器(javac)---.class文件(字节码文件)--- .class 文件加载到JVM,这就是类的加载(java className)-->翻译为指令+数据-->cpu执行。 在类加载中,按需懒惰式加载每个用到的类。
静态方法:属于类的方法,使用类名直接访问。静态方法中没有隐含this,不能访问对象属性,可以访问类级别的成员(也即静态成员),它的用途是一般作为“工具方法”或者“工厂方法”(简单理解为:创建对象的方法)。
静态代码块:在类加载期间执行的代码块,经常用于初始化一次性装载的资源。
static final (final static)就表示常量。
三、public关键字:
public 修饰属性、方法和类,在任何地方都可以访问。
四、private关键字:
private只能修饰类的成员,被修饰的成员只能在类内部访问。
五、protected关键字:
protected 保护的,修饰属性和方法等。可见范围是类内部、包内部和子类中(包括不同包的子类)。
六、(缺省)关键字:
默认修饰:不写修饰词,可以修饰属性、方法以及类等。可见范围是类内部和包内部,(同包类)