11 Java面向对象之static及块

JavaSE 基础之十一

11 Java面向对象之static及块

① static变量与static方法

  1. static在java中表示全局或者静态的意思。Java中其实并不存在全局变量的概念,但是可以通过static来实现一个伪全局的概念。
  2. 用static来修饰属性或者方法,则此属性或者方法就属于类级别的。
    • 对象级别:成员变量、成员方法属于对象级别的内容。
    • 类级别:静态的内容都属于类级别的内容。
  3. 在类加载的时候,类的静态变量就已经在内存里边创建了空间,静态变量默认是方法区。
  4. 通过类创建对象的时候,每个对象都可以共享静态变量。

  static方法与static变量是一样的概念,属于类的方法。

② 成员变量和静态变量区别

  1. 静态变量
      随着类加载就初始化,在内存中有且仅有一个,JVM只会给当前类的静态变量分配一次内存,同时类的静态变量是所有对象共享的,并且还可以通过“类名.静态变量”来访问。
  2. 实例变量(成员变量)
      伴随着对象的产生而创建,每个对象都有对应的实例变量。所有的实例变量都是和对象同生共死的。

③ 调用规范

  1. 静态方法可以直接调用本类中的静态成员。
  2. 静态方法不能调用非静态成员变量(成员变量此时还没有创建)。
  3. 静态方法可以调用静态方法,但是不能调用成员方法。
  4. 成员方法可以调用静态变量,也可以调用普通变量。
  5. 成员方法可以调用成员方法,可以调用静态方法。

④ 块

  1. 普通块
      在类下边用 { } 来书写的代码就称为普通块。
      作用:每次对象在产生的时候都会执行,可以使用其来做对象数据的初始化。但是每次创建对象都要执行,效率比较低。
  2. 静态块
      在普通块前面加上一个static表示静态块。类加载的时候就在内存创建空间,并且有且仅有一个,不管创建多少个对象都是共享这个块。
  3. 执行顺序
      静态块 ----- 普通块 ----- 构造器

posted on 2019-03-10 21:01  PenjayFeng  阅读(163)  评论(0编辑  收藏  举报

导航