1 static变量–静态变量

静态变量是随着类加载时被完成初始化的,它在内存中仅有一个,且JVM也只会为他分配一次内存,同时类的所有实例都共享静态变量,可以直接通过类名来访问它

2 static方法–静态方法

静态方法可以通过类名直接调用

静态方法必须实现,也就是说它不能是抽象方法

3 static代码块–静态代码块

  • 静态代码块会随着类的加载一块执行,而且可以随意放,可以存在于该类的任何地方
  • 静态代码块只会执行一次
  • 如果存在多个静态代码块,则按照顺序依次执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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的局限

  1. 只能调用static变量
  2. 只能调用static方法
  3. 不能以任何形式引用thissuper
  4. static变量在定义时必须要进行初始化


Java      static

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!