java ——static 关键词总结

static (静态的)

可以用来修饰属性、方法、代码块(或初始化块)、内部类

static修饰属性(类变量):
  • 1.由类创建的所有的对象,都共用这一个属性
  • 2.当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用。vs实例变量(非static修饰的属性,各个对象各自拥有一套副本)
  • 3.类变量随着类的加载而加载的,而且独一份
  • 4.静态的变量可以直接通过“类.类变量”的形式来调用
  • 5.类变量的加载是要早于对象。所以当有对象以后,可以“对象.类变量”使用。但是"类.实例变量"是不行的。
  • 6.类变量存在于静态域中。
static修饰方法(类方法):
  • 1.随着类的加载而加载,在内存中也是独一份
  • 2.可以直接通过“类.类方法”的方式调用
  • 3.内部可以调用静态的属性或静态的方法,而不能调用非静态的属性或方法。反之,非静态的方法是可以调用静态的属性或静态的方法

注:静态的方法内是不可以有this或super关键字的!
  静态的结构(static的属性、方法、代码块、内部类)的生命周期要早于非静态的结构,同时被回收也要晚于非静态的结构

static 修饰代码块(静态代码块):
  • 1.里面可以有输出语句
  • 2.随着类的加载而加载,而且只被加载一次
  • 3.多个静态代码块之间按照顺序结构执行
  • 4.静态代码块的执行要早于非静态代码块的执行。
  • 5.静态的代码块中只能执行静态的结构(类属性,类方法)
static修饰内部类(静态内部类):
    • 1 它的创建是不需要依赖于外围类的。
    • 2 它不能使用任何外围类的非static成员变量和方法。
posted @ 2018-02-01 19:28  TigerExpensive  阅读(190)  评论(0编辑  收藏  举报