Java review(6) 成员默认值
Java在构造对象实例的时候会自动的将成员初始化,赋予默认值,其中分为基本类型、对象类型、静态类型三种成员的默认值,以下是一个测试例子:
class A {
// 基本类型
private boolean aBoolean;
private byte aByte;
private char aChar;
private short aShort;
private int anInt;
private long aLong;
private float aFloat;
private double aDouble;
// 对象
private Date date;
private Double d;
// 静态
private static int a;
private static Integer b;
@Override
public String toString() {
return "A{" +
"aBoolean=" + aBoolean +
", aByte=" + aByte +
", aChar=" + aChar + " (" + (int) aChar + ")" +
", aShort=" + aShort +
", anInt=" + anInt +
", aLong=" + aLong +
", aFloat=" + aFloat +
", aDouble=" + aDouble +
"\n" +
", date=" + date +
", d=" + d +
"\n" +
", a=" + a +
", b=" + b +
'}';
}
}
@Test
public void test1() throws Exception {
A a = new A();
System.out.println(a);
// A{aBoolean=false, aByte=0, aChar= (0), aShort=0, anInt=0, aLong=0, aFloat=0.0, aDouble=0.0
// , date=null, d=null
// , a=0, b=null}
}
可以看到这种初始化规则:
静态成员也会进行初始化,初始化的规则和非静态成员一致
对于基本类型,初始化默认值如下:
在这里插入图片描述 对于对象,初始化为null
可以猜测,JVM为对象在堆分配内存时,分配好之后就顺便把空间给清0了
版权声明
本文章由作者“衡于墨”创作,转载请注明出处,未经允许禁止用于商业用途
发布时间:2019年11月28日 14:17:27
备案号:
闽ICP备19015193号-1
关闭特效
评论区#
还没有评论哦,期待您的评论!
引用发言