黑马程序员:类中静态变量在加载类的过程中会自动初始化

ASP.Net+Android+IO开发S.Net培训、期待与您交流! ------------

在黑马论坛,一位同学这样提问:

----------------------------------------------------------------------------------------------------------------------------

两段代码,执行的时候会提示代码1中的a没有初始化,但是代码却能正常执行,为什么啊
代码1:
String a;
  if(a==null)

代码2:
private static lanSingle s;
public static lanSingle getInstance(){
  
  if(s==null)
   s = new lanSingle();
  return s;
}
--------------------------------------------------------------------------------------------------------------------------

这个问题问的很好,我原以为很简单,真的要回复的时候也蒙了一下。

1.String a;这句没有对变量进行初始化,所以会报错,这个我能理解。

2.代码2:private static lanSingle s;  这句也没有对s进行初始化为什么能用呢?确实很奇怪!经过反复研究,发现关键的问题出在前面的修饰符static上!

       static变量,在类加载的时候就会对静态变量进行默认的初始化!

3.有图有真相






---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值