对象的初始化

记得大二上课的时候,老师总是说,变量记得初始化初始化,一定要记得初始化。我们从未放在心上,心想这么简单的事情我们一定不会做错。事实证明,问题总是在细节上出现。
刚才我写了这么一段代码,

ClassA a = null;
process(a);

就不说方法体里面究竟是什么了,执行了process之后a的值仍然是空。因为后面涉及到判断a是否为空的问题,所以就理所当然的把它设置成初始为null了。事实是,如果没有使用new初始化对象,就没有为它分配内存空间,那么在函数体内做的操作都是徒劳。即使为a重新赋值,方法体结束后a始终为空。另外,这里传递的是a引用的真正对象的地址,其真正的对象的变化才会产生是a产生变化。重新将a取另外对象的引用是不行的。
再说说其他变量的问题。我们总是以为某些基本变量的值会默认给予,其实不是的。java确保类中的成员会有一个默认值,而局部变量在不初始化的情况下使用则会报错。几种基本变量类型的初始值如下:
[table]
|基本类型|默认值|
|boolean|false|
|char|'\u0000'(null)|
|byte|(byte)0|
|short|(short)0|
|int|0|
|long|0L|
|float|0.0f|
|double|0.0d|
[/table]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值