Java编程思想(四) 初始化与清理

2022-06-05  本文已影响0人  kaiker

1、用构造器确保初始化

2、方法重载

3、默认构造器

4、this关键字

public class Leaf {
    int i = 0;
    Leaf increment() {
       i++;
       return this;
    }
}

在构造器中调用构造器

static的含义

5、清理:终结处理和垃圾回收

垃圾回收器如何工作

6、成员初始化

7、构造器初始化

初始化顺序。

class Window {
  Window(int marker) { print("Window(" + marker + ")"); }
}

class House {
  Window w1 = new Window(1); // Before constructor
  House() {
    // Show that we're in the constructor:
    print("House()");
    w3 = new Window(33); // Reinitialize w3
  }
  Window w2 = new Window(2); // After constructor
  void f() { print("f()"); }
  Window w3 = new Window(3); // At end
}

public class OrderOfInitialization {
  public static void main(String[] args) {
    House h = new House();
    h.f(); // Shows that construction is done
  }
} /* Output:
Window(1)
Window(2)
Window(3)
House()
Window(33)
f()

静态数据初始化

一个对象创建的过程,

  1. 即使没有显示使用static关键字,构造器实际也是静态方法。首次创建Dog对象或Dog的静态方法、域首次被访问,Java解释器必须找到类路径以定位Dog.class。
    2、载入Dog.class,有关静态初始化所有动作都会执行。因此静态初始化只在Class对象首次加载时候进行一次。
  2. new Dog()创建对象时,在堆上为Dog对象分配足够的存储空间。
  3. 这块存储空间被清零,基本类型设为默认,引用设为null。
  4. 执行所有出现于字段定义处的初始化动作。
  5. 执行构造器。

8、数组初始化

上一篇下一篇

猜你喜欢

热点阅读