码迷,mamicode.com
首页 > 编程语言 > 详细

[THINKING IN JAVA]初始化和清理

时间:2016-05-14 16:57:19      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

4、5初始化和清理

5.1 构造器初始化

  1. 无参:如果一个类没有构造器,那么会有一个默认的无参构造器,并且只能通过无参构造器初始化对象;
  2. 带参:传入参数初始化成员变量或者其它初始化操作需要的参数,如果类重质油带参构造器,那不能通过无参构造器初始化对象。

5.2 方法重载

  1. 具有相同的方法名称、不同的返回值或者参数列表(个数、类型、顺序)
  2. 基本类型重载:基本类型存在自动向上转型的情况

5.3 垃圾回收

  1. finalize():在对象被销毁时调用
  2. 如何回收:引用计数、停止-复制、标记-清扫、分代、JIT

5.4 成员变量初始化

  1. 指定初始化,定义的时候初始化,每次创建对象的实例初始值一样;
  2. 构造器初始化,在构造器中初始化成员变量;
  3. 非static域初始化非成员变量({});
  4. 静态变量初始化:指定初始化和静态域初始化(static{});
  5. 初始化顺序:如果类第一次被实例化,那么首先初始化类的静态变量,如果不是,将不会再初始化静态变量,接着初始化指定方式的,最后初始化构造器方式的
  6. 继承方式初始化顺序:父类static->子类static->父类指定->父类构造->子类指定->子类构造

 

package com.chenlei.study.thinkinginjava;

class Base{
    Base(String msg){
        System.out.println(msg);
    }
}

class Father{
    static Base staticBaseFather = new Base("staticBaseFather specify");
    static Base staticBaseFather1;
    static{
        staticBaseFather1 = new Base("staticBaseFather static area");
    }
    Base base = new Base("fieldBaseFather specify");
    Base base1;
    {
        base1 = new Base("fieldBaseFather non-static area");
    }
    Base base2;
    public Father() {
        base2 = new Base("fieldBaseFather constructor");
    }
}

class Child extends Father{
    static Base staticBaseChild = new Base("staticBaseChild specify");
    static Base staticBaseChild1;
    static{
        staticBaseChild1 = new Base("staticBaseChild static area");
    }
    Base base1;
    {
        base1 = new Base("fieldBaseChild non-static area");
    }
    Base base = new Base("fieldBaseChild specify");
    Base base2;
    public Child() {
        base2 = new Base("fieldBaseChild constructor");
    }
}

public class Initalized {
    public static void main(String[] args) {
        new Child();
    }
}

 

 

output:
staticBaseFather specify staticBaseFather
static area staticBaseChild specify staticBaseChild static area fieldBaseFather specify fieldBaseFather non-static area fieldBaseFather constructor fieldBaseChild non-static area fieldBaseChild specify fieldBaseChild constructor

 

[THINKING IN JAVA]初始化和清理

标签:

原文地址:http://www.cnblogs.com/Vabshroo/p/5492639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!