static

一、static修饰属性时

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

 

那么,何时将属性声明为static呢? 

当属性被多个对象共享,不会随着对象的不同而不同时。

常量也常常声明为static。

 

 

二、 static修饰方法时

  • 静态方法:在静态方法中,可以调用静态方法和静态变量,不能调用非静态方法和实例变量。  静态方法或属性前省略的是类名,而不是this

     这是因为静态方法随类的加载而加载,类的生命周期比对象的生命周期长。当类出生时,对象可能还没出生,所以不能调用非静态的结构。

  • 非静态方法则无此限制、

 

那么,何时将方法声明为static呢?

当操作静态属性的方法,通常设置为static

工具类中的方法,习惯上声明为static

 

三、static修饰代码块时

静态代码块:随类的加载而执行,在代码块内只能调用static修饰的结构

非静态代码块:随对象的加载而执行,无限制

执行顺序:由父及子,静态先行

 

posted @ 2022-03-28 23:16  陈浩威  阅读(173)  评论(0)    收藏  举报