本帖最后由 H._张_♂ 于 2014-4-11 19:19 编辑
第一种情况叫做初始化后立即赋值- import java.util.LinkedList;
- public class Test5 {
- public static void main(String[] args) {
- // 调用DuiLie,并创建实例对象
- DuiLie duiLie = new DuiLie();//当new DuiLie()时,栈中先有一个link引用指向堆中的一个LinkedList实例对象
- }
- }
- class DuiLie {
- private LinkedList link = new LinkedList();//这叫一次性赋值。创建引用后直接复制
- DuiLie(){System.out.println(link);}//构造函数可以省略,输出[]。
- }
复制代码
第二种叫做初始化后二次赋值
- import java.util.LinkedList;
- public class Test5 {
- public static void main(String[] args) {
- // 调用DuiLie,并创建实例对象
- DuiLie duiLie = new DuiLie();
- }
- }
- class DuiLie {
- private LinkedList link;//在java中jvm一律赋初值。这里为null;
-
- DuiLie(){
- System.out.println(link);//输出null
- link = new LinkedList();
- System.out.println(link);//输出[] 表示link为空
- }
-
- }
复制代码 至于好处,我觉得应该是延迟加载的问题。
|