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 成员变量和方法
java static 关键词总结
来源: http://www.bubuko.com/infodetail-2483667.html