基本类型与对象初始化
2019-05-02 本文已影响0人
大山村长
在Java语言中,初始化值,可以区分两种形式,一种是基本变量初始化;另一种则是对象初始化。基本类型初始化,又分为默认初始化和显式初始化,如:
![](https://img.haomeiwen.com/i11710646/3ffd6ec0a1837071.jpg)
![](https://img.haomeiwen.com/i11710646/eedaea4b5dff15fc.jpg)
结果:
![](https://img.haomeiwen.com/i11710646/cbf0c9fa2d15e9d1.jpg)
Java基本类型初始化,默认值是默认为相应类型值的0;然而对象的默认值则为null;对于数组的默认值,只要定义了数组的长度后,每个值也是相应类型值的0;String与对象默认值为null。
![](https://img.haomeiwen.com/i11710646/d24548d35e0cc8bf.png)
![](https://img.haomeiwen.com/i11710646/bac4908421dd8fd1.png)
对于对象来说,值是如何初始化呢。Java官方告诉我们,对象初始化是通过new 关键词为对象开辟一段内存空间,然而new 后面则其实是该类的构造方法如:String str =new String();
String()是String默认的无参构造方法,当new声明开辟内存空间后,看源码可知值为"",因为重写了构造方法:
public String() {
this.value ="".value;
}
。如要显式声明值,则可以重载构造方法:如:
![](https://img.haomeiwen.com/i11710646/e8b80478ea0af932.png)
![](https://img.haomeiwen.com/i11710646/1a1bd4bf46a8d3ee.png)
若类重载构造方法后,则不会有默认无惨构造方法,需要手动重新一遍。
当然对于一些静态类的值和初始化一次再也不会变的值,也可以通过static代码块来初始化,如:
![](https://img.haomeiwen.com/i11710646/7e70dfb33f203cb9.png)
当代码第一次调用时赋值。当然还可以通过static方法是进行淋湿给类赋值,此方法多勇于工具类;
![](https://img.haomeiwen.com/i11710646/d0139edea507f510.png)
当然还有其他方法,如反射等,此处不再列举,自行查找资料。