java 局部变量初始化_JAVA成员变量初始化和局部变量初始化

在java中变量是具有默认初始化值的。

但这这么说也不怎么准确,因为java中的变量(我觉得称为字段更合适),分为属于类的成员变量和属于函数或者局部代码块的局部变量。如果在定义变量后没有给它们赋初始值,那么java会给于一个默认的初始化值,但只有类的成员变量才被初始化,而局部变量不会被初始化。如果没有被初始化的变量被操作,java在编译器就会给予错误警告,如果没有被赋予初值的局部变量,一直没被操作,则编译通过,java不会给予错误警告。

除了变量的初始化外,新创建的类的引用也是一样,如果没有用new关键字给它分配对象的话,如果这个引用是属于类的成员字段则被默认初始化为null,如果在函数或者局部代码块内部,不会被初始化;

java基本数据类型默认初始化表

基本类型

默认值

char

'\u0000'(null)

byte

0(byte 1字节)

short

0(short 2字节)

int

0(4字节)

long

0L

float

0.0f

double

o.od

boolean

false

另外添加一个:类引用会被初始化为null

下面,用一段代码测试一下:

运行结果:

1031ba93d18fbf68dbd8205253be730b.png

这个结果就说明了,类测成员变量会被给予一个默认初始化值,类引用也会被初始化位nullvcD4KPHA+z8LD5rXEveG5+8rHyKW19MnPzsS0+sLr1tDK5LP2uq/K/bPJ1LGx5MG/JiMyMDU0MDu1xNPvvuSjrMbky/zDu9PQ1/a4xLavPC9wPgo8cD48aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20131218/20131218093053283.jpg" alt="">

从上面的报错信息我们不难看出,包含在函数中的成员变量或者类引用,都不会被默认给予初始化值。

思考:

java的这种机制避免了没有被初始化的数据成员在进行其它操作时引起的严重性错误,尽量从语法上避免程序员犯错。与之相反,C和C++,无论你对变量时候进行初始化,都可以对变量进行操作,这时变量中存储的是一串随机的数字(可能是上一个程序使用该内存空间后遗留的值,计算机中的数据不会被物理意义上的“擦除”,你对一块内存的写数据只是覆盖了这块内存的旧值而已。)。java编译器会将未初始化变量视为错误,而C/C++编译器则将其视为警告

喜欢 (0)or分享 (0)

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值