l = new Lazy(); l 是全局变量,
Lazy l = new Lazy(); --> Lazy l ; l = new Lazy(); 使用的时局部变量, return 返回的是全局变量的 l ,我是这样理解的,- class Lazy
- {
- private static Lazy l= null;
- private Lazy(){}
- public static Lazy getLazy()
- {
- if(l==null)
- {
- if(l==null)
- {
- Lazy a = new Lazy();//为什么把这句加个Lazy结果就是null呢?(就是这句Lazy l = new Lazy();)
- }
-
- }
- return a;
- }
- }
- class Demo1
- {
- public static void main(String[] args)
- {
- System.out.println(Lazy.getLazy());
- }
- }
复制代码 因为把这个换成a, 编译报错是找不到符号。 |