日期:2014-05-20  浏览次数:20757 次

编写一个类,包括一个字符串变量,在定义处将期初始化.另一个字符串变量由构建器初始化.说明这两种方法的区别?
编写一个类,包括一个字符串变量,在定义处将期初始化.另一个字符串变量由构建器初始化.说明这两种方法的区别?

------解决方案--------------------
public class Test{
 private String a="aaaa";
 private String b;
public Test(){
b="bbbbb";
}
}


创建Test对象时,会首先初始化a 和 b,a为“aaaa”,b此时为null,然后调用构造函数,将b赋值为bbbbb.

没有什么大的不通,执行顺序而已
------解决方案--------------------
Java code

public class Test {

    static private String staticName = "zhao";

    private String name = "long";

    private String code = null;

    Test(String code) {
        this.code = code;//一般在这里给成员变量初始化是,是在带参数的构造方法里~无参构造方法里这么写没有意义,不如声明的时候初始化!但是他们两个先后顺序是不一样的!
    }

    public static void main(String[] args) {
        new Test("hello");
    }
}

------解决方案--------------------
1\在定义处将期初始化.这是类加载的时候就初始化,比较占用系统资源
2、另一个字符串变量由构建器初始化.这叫做“lazy loading”,类实力化的时候才初始化,对系统资源占用少
------解决方案--------------------
最大的区别就是初始化顺序不一样。