Java静态Static
2017-05-10 本文已影响1人
stefanJi
1 static
变量--静态变量
静态变量是随着类加载时被完成初始化的,它在内存中仅有一个,且JVM
也只会为他分配一次内存,同时类的所有实例都共享静态变量,可以直接通过类名来访问它
2 static
方法--静态方法
静态方法可以通过类名直接调用
静态方法必须实现,也就是说它不能是抽象方法
3 static
代码块--静态代码块
- 静态代码块会随着类的加载一块执行,而且可以随意放,可以存在于该类的任何地方
- 静态代码块只会执行一次
- 如果存在多个静态代码块,则按照顺序依次执行
class Demo{
static{
System.out.println("Demo static code");
}
public Demo(String string) {
System.out.println(string + " construct");
}
}
public class Main {
static{
System.out.println("Main static code 1");
}
public static void main(String[] args){
new Demo("demo1");
new Demo("demo2");
}
static{
System.out.println("Main static code 2");
}
}
输出:
Main static code 1
Main static code 2
Demo static code
demo1 construct
demo2 construct
4 static
的局限
- 只能调用
static
变量 - 只能调用
static
方法 - 不能以任何形式引用
this
、super
-
static
变量在定义时必须要进行初始化