class ChuShiHua{
//基本数据初始值
byte b;
short s;
int i;
long l;
char c;
boolean bl;
String ss;
public static void main(String[] args){
//输出
// System.out.println(b); //请记住结果 静态方法,静态变量
ChuShiHua c=new ChuShiHua();
c.get();
}
public void get(){
System.out.println("byte "+b);
System.out.println("short "+s);
System.out.println("int "+i);
System.out.println("long "+l);
//特殊的char
System.out.println("char "+c);
if (c == '\u0000') {
System.err.println("char:" + (int) c);
System.err.println(c);
}
System.out.println("boolean "+b);
System.out.println("string "+ss);
}
}
结论:
布尔值: boolean默认false
字符: char,
整数:byte,short,int,long为0
实数: float,double为double类型的0.0
对象引用为null
补充:
(1)、new方式创建对象保存到堆中,保存其地址的引用,对于基本数据类型来说,java采取和c、c++相同方式,创建的变量直接存储值,置于栈顶,更加高效。
(2)、Java中每种基本数据类型所占存储空间大小,不依赖于机器硬件架构变化而变化,即基本数据类型所占存储空间具有不变性。
(3)、所有数值类型都有正负号,没有无符号的数值类型
各个基本数据类型的大小及精度如下表:
基本类型大小最小值最大值包装类型
boolean------Boolean
char16bit,2个字节(byte)Unicode 0Unicode 2^16-1即,65535Character
byte8bit,1个字节-128127Byte
short16bit,2个字节-2^15即32768+2^15-1,即32767Short
int32bit,4个字节-2^31即2147483648,约-21亿+2^31-1,即2147483647,约约+21亿Integer
long64bit,8个字节-2^63即9223372036854775808,约-922亿亿+2^63即9223372036854775807,约+922亿亿Long
float32bit,4个字节1.4E-45,即1.4*(1/10^45)3.4028235E38,即3.4028235*10^38Float
double64bit,8个字节4.9E-324,即4.9*(1/10*324)1.7976931348623157E308即1.7976931348623157*10^308Double
表说明:
1)、boolean类型所占存储空间大小没有明确指定,仅仅定义能够取字面值true,false
2)、各个数值类型的最大值,最小值,均可通过包装类型的MIN_VALUE与MAX_VALUE获取,如Double.MIN_VALUE。
3)、jdk1.5后提供自动装拆箱机制,基本数据类型和包装类型自动转换。
4)、表格中按照从上到下精度由低到高(boolean除外),从高精度到低精度需显示强制转换(boolean除外)。
附加:高精度数字
BigInteger:支持任意精度的额整数,可以表示任何大小整数值,而不会丢失信息。
BigDecimal:支持任何精度的定点数,如可以进行精确的货币运算。
高精度数字缺点:运算速度比较慢,以速度换取精度。