static
一、static修饰属性时
- 实例变量:归对象所有,每个对象拥有自己的一份实例变量。
- 静态变量:归类所有,随类的加载而加载,因为类只加载一次,所以静态变量在内存中只有一份,存放在方法去的静态域中。

那么,何时将属性声明为static呢?
当属性被多个对象共享,不会随着对象的不同而不同时。
常量也常常声明为static。
二、 static修饰方法时
- 静态方法:在静态方法中,可以调用静态方法和静态变量,不能调用非静态方法和实例变量。 静态方法或属性前省略的是类名,而不是this
这是因为静态方法随类的加载而加载,类的生命周期比对象的生命周期长。当类出生时,对象可能还没出生,所以不能调用非静态的结构。
- 非静态方法则无此限制、
那么,何时将方法声明为static呢?
当操作静态属性的方法,通常设置为static
工具类中的方法,习惯上声明为static
三、static修饰代码块时
静态代码块:随类的加载而执行,在代码块内只能调用static修饰的结构
非静态代码块:随对象的加载而执行,无限制
执行顺序:由父及子,静态先行
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号