(一)关键字
1 static
修饰变量、方法、静态块、静态内部内、静态导包。
随着类的加载而加载,只执行一次,并优先于主函数。存在于方法区中。
在《Java编程思想》P86页有这样一段话:
“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”
方便在没有创建对象的情况下来进行调用(方法/变量)。
1 一个类中可以直接调用另一个类的static 方法,无需对类进行实例化
2 一个类中,在当前类中
static 修饰的方法内 可以直接使用当前类的方法
3 一个类中,在当前类中
非static 修改的方法内,可以使用this.或者 直接方法
总结:static 修饰的方法不能使用 this,本类中static 方法可以直接方法,非static 方法需要当前类的实例化
非static 修饰的是方法可以可以this或者直接使用,或者其他类static(类.方法)
被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。
static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。
static 是放在jvm 方法区中类的初始化的时候就会被携带在方法区中
常量就是没有赋值,java 中 public static int a = 10; jvm class 中为public static int a;
java 中 public static final a = 10; jvm class 中为 public static final a = 10;
static final和final static:
static final和final static没什么区别,一般static写在前面。
static final:
static修饰的属性强调它们只有一个,final修饰的属性表明是一个常数(创建后不能被修改)。static final修饰的属性表示一旦给值,就不可修改,并且可以通过类名访问。