今天同事被同事问到一个细节问题,现我把Java八大基本类型的初始值小结一下:
Java有 8 种原始类型,可分为四大类:整数、实数、字符、boolean.
整数:byte、short、int、long。初始值为0
实数:float、double。初始值为0.0
字符:char。初始值为空格,即'' ",如果输出,在Console上是看不到效果的。
boolean:boolean。初始值为false
以下为小扩展:
在Java中,一切皆对象,但八大基本类型却不是对象。
基本类型存储在内存中的内存栈上,数据本身值存储在栈空间里。栈的好处就是操作速度快,创建销毁很容易。
复杂类型的引用是存储在内存中的内存栈上,对象本身存储在堆内存里。举个例子来说:
String s = new String("对象");
s是复杂类型的引用,是存储在栈上的,而引用的值“对象”是存储在内存堆里的。
对象的销毁:
对象的引用放在栈中,所以使用完引用就被从栈中销毁了,但是实际的对象仍然存放在堆中,只有在没有任何的引用使用它的时候才被gc回收。
另:Java有两个专门的类负责高精度运算:BigInteger和BigDecimal。
这两个类是没有对应的基本类型的。因为精度过大,效率不够高。但普通类型的操作这两个类都对应有。