Java核心技术(初阶)知识点复习——[6]static关键字

1.static变量

  只依赖于类存在,同时通过类名即可访问,不需要通过对象实例来访问;

  所有对象实例,关于static变量的值都共享存储在一个共同的内存空间中(栈);

2.static方法

  只依赖于类存在,同时通过类名即可访问,不需要通过对象实例来访问;

  static方法禁止使用非static变量以及非static方法;非静态方法中什么都可以调用;

3.static代码块

  [1]一个类中只能出现类变量、类方法、静态代码块;

  [2]静态代码块只在类第一次被加载时调用;

   即在程序运行期间,静态代码块只运行一次;

   执行顺序为:静态代码块>匿名代码块>构造函数;

 1 class StaticBlock
 2 {
 3     //静态代码块>匿名代码块>构造函数
 4     static
 5     {
 6         System.out.println("22222");
 7     }
 8     {
 9         System.out.println("11111");
10     }
11     public StaticBlock()
12     {
13         System.out.println("33333");
14     }
15     {
16         System.out.println("44444");
17     }
18 }
1 public class StaticBlockTest{
2 
3     public static void main(String[] args){
4         StaticBlock obj1 = new StaticBlock();
5         StaticBlock obj2 = new StaticBlock();
6     }
7 }第一次运行到StaticBlock时,就运行static块;每次运行到new了对象出来时,匿名块和构造函数都会被依次调用

结果为:

22222

11111

44444

33333

11111

44444

33333

猜你喜欢

转载自www.cnblogs.com/li7anStrugglePath/p/12732674.html