static关键字

static 关键字
static关键字是一个修饰符
可以修饰: 属性(静态属性),方法(静态方法),内部类(定义在内里的)静态内部类,游离块(静态块)

static修饰属性
静态变量,每个对象都共享此变量,一旦有1个对象改变了此变量的值,那么其他对象,看到的都是改变后的值。
非静态变量(成员变量):和对象相关,每个对象都有这个属性,它们修改的只是自己的属性和其他对象无关。
成员变量和静态变量的区别:
1. 调用方式不一样
      静态变量可以使用类名.属性名 调用 ,也可以使用 对象名.属性名调用
      成员变量:只能使用对象名.属性名调用
2. 别名不一样:
      静态变量(类变量)   成员变量(实例变量)
3.数据存储的位置不一样
     成员变量存储在堆中,静态变量存储在静态区(共享数据的区域)
4. 生命周期不同
     静态变量和类相关,它在类加载的时候就存在了,随着类的消失而消失
     成员变量随着对象的创建而存在。随着对象的销毁而销毁

static 修饰方法
  static修饰符方法----静态方法
 静态方法和非静态方法的区别:
1.      调用方式不一样
静态方法除了使用对象名.方法名调用,还可以使用类名.方法名调用。
2.      在静态方法中,只能直接调用静态的成员(静态属性和静态方法)
在非静态方法中,都可以调用(静态和非静态都可以)
3.      在静态方法中,不能使用this和super关键字

static修饰内部类
在静态内部类中只能直接访问静态的属性和静态的方法。
static修饰游离块:称为静态块
在类加载的最先执行,并且只执行1次。 在静态块中只能直接访问静态的属性和静态的方法。

你可能感兴趣的:(java,java)