当前位置: 代码迷 >> J2SE >> 编写一个类,包括一个字符串变量,在定义处将期初始化.另一个字符串变量由构建器初始化.说明这两种方法的区别?解决方法
  详细解决方案

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

热度:67   发布时间:2016-04-24 13:05:18.0
编写一个类,包括一个字符串变量,在定义处将期初始化.另一个字符串变量由构建器初始化.说明这两种方法的区别?
编写一个类,包括一个字符串变量,在定义处将期初始化.另一个字符串变量由构建器初始化.说明这两种方法的区别?

------解决方案--------------------
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”,类实力化的时候才初始化,对系统资源占用少
------解决方案--------------------
最大的区别就是初始化顺序不一样。
  相关解决方案