在Java里static (静态的),是静态关键字,用来修饰静态变量、方法、代码快等。
1 当static修饰变量的时候,该变量将被JVM直接分配到堆内存上,且所有程序对其的引用都指向同一个地址,不会再进行重新分配内存空间,一般常用于修饰计数器。
2 用来修饰方法的时候,注意该类中如果调用其他方法,则调用的方法也必须为静态的,但是变量可以声明为非静态或者使用静态全局变量。好处就是可以直接通过类名进行调用该方法,不用进行类的实例化。
3 用来修饰代码块的时候,在类加载的时候就进行初始化代码快里的内容,这要比非静态代码块执行更早,一般用于
类的初始化操作。
在Java 里 final可以用来修饰变量、方法、类
1 当定义一个final变量时,jvm会将其分配到常量池中,程序不可改变其值;
2 当修饰一个方法时,该方法在子类中将不能被重写;
3 当修饰一个类时,该类不能被继承。
另外,关于static final和final static:
static final和final static没什么区别,一般static写在前面。
static final:
static修饰的属性强调它们只有一个,final修饰的属性表明是一个常数(创建后不能被修改)。static final修饰的属性表示一旦给值,就不可修改,并且可以通过类名访问。
static final也可以修饰方法,表示该方法不能重写,可以在不new对象的情况下调用