java integer的默认值_int和Integer的默认值

本文解析了Java中int和Integer类型的默认值差异,解释了为什么返回null不报错,以及int和Integer声明变量时的不同行为。通过实例展示了如何避免空指针异常,并介绍了两者在默认值、封装和方法调用上的关键区别。
摘要由CSDN通过智能技术生成

这里将告诉您int和Integer的默认值,具体实现方法:

群里有一个小伙伴发了一段和下面差不多的代码啊,问了一个问题,代码如下:

public static void main(String[] args) {

doem01 doem01 = new doem01();

Integer name = doem01.name();

System.out.println(name);

}

public Integer name() {

return null;

}

这段代码毫无疑问,打出来的是null群友问,为什么name中的return不报错啊,null不是string的默认值嘛然而我定义的是Integer 。这个是群友发的

1f1ccdf7e0cd2a56904f59c9c17e7c74.png

这时我也不知道啊,就百度寻找答案,万能的度娘告诉我:

值类型 :默认值为0;

引用类型 : 默认值为null;

611390eaf15f0ef51c43b6bc174b15a5.png

下面的代码中,我们将Interger改成int类型:

public static void main(String[] args) {

doem01 doem01 = new doem01();

int name = doem01.name();

System.out.println(name);

}

public Integer name() {

return null;

}

代码编译时不会报错,但运行的时候会报一个空指针的错误,为什么呢?因为Integer是int的封装类,编译器能够识别,但是它所调用的方法又是另一个,所以运行时

找不到那个方法所以报了一个空指针,代码如下:

public static void main(String[] args) {

doem01 doem01 = new doem01();

int name = doem01.name();

Integer name1 = doem01.name1();

System.out.println(name);

System.out.println(name1);

}

private int name() {

// TODO Auto-generated method stub

return 0;

}

public Integer name1() {

return null;

}

如代码int声明的调用的是intname()这个方法 Integer声明的调用的是Integername1()这个方法。在声明变量初始化时也是相同的道理,int声明的变量只能为int类型

而Integer出来int类型外,还可以定义为null。如下:

Integer a1 = null;

int a2 =null; //这行会报错int a3 =1;

int a4 = (Integer) null;

其他的基本数据类型也是如此。

个人学习,内容拙劣见谅int和Integer的默认值就为您介绍到这里,感谢您关注懒咪学编程c.lanmit.com.

本文地址:https://c.lanmit.com/bianchengkaifa/Java/106295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值