这里将告诉您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 。这个是群友发的
这时我也不知道啊,就百度寻找答案,万能的度娘告诉我:
值类型 :默认值为0;
引用类型 : 默认值为null;
下面的代码中,我们将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