面试题:java有哪些基本数据类型?
答:java有8种基本数据类型,分别是byte(1),char(2),short(2),int(4),float(4),long(8),double(8),boolean(1或者4)。
备注:记住8种基本数据类型,具体值正常开发者都会有印象。
1.byte
- 长度:1个字节,8位
- 取值范围: - 2^7 - 1 至 2^7 - 1,即 -127 至 127
- 默认值为:0
- 备注:byte之间做四则运算会自动转化成int,做位运算不会
- 举例:byte a = 1; byte b = 2; byte c = (byte) (a + b);
- 包装类:Byte
2.char
- 长度:2字节,16位
- 取值范围:0 至 -2^16 - 1,即0至 2^16 - 1,即 0 至 65535
- 默认值:无
- 备注:char没有默认值,所以无法操作没有没有初始化的char类型数据
- 举例:char a = 'a'; char b = 'b'; char c = a + b;
- 包装类:Character
3.short
- 长度:2字节,16位
- 取值范围:-2 ^ 15 -1 至 -2 ^ 15-1,即 -32767 至 32768
- 默认值:0
- 备注:short之间做四则运算会自动转化成int,做位运算也会自动转化成int
- 举例:short a = 1; short b = 2; short c = (short) (a & b);
- 包装类:Short
4.int
- 长度:4字节,32位
- 取值范围:-2 ^ 31 -1 至 -2 ^ 31-1
- 默认值:0
- 备注:int是最常用的整型,大概范围为正负21亿,大概10位10进制数
- 举例:int a = 1; int b = 2; int c = a + b;
- 包装类:Integer
5.long
- 长度:8字节,64位
- 取值范围:-2 ^ 63 -1 至 -2 ^ 63-1
- 默认值:0
- 备注:long类型的后缀为l/L,不区分大小写,当没超过int最大值时,可加可不加,但是超过int最大值,必须加后缀
- 举例:long a = 1L; long b = 2l; long c = a + b;
- 包装类:Long
6.float
- 长度:4字节,32位
- 取值范围:-2 ^ 31 -1 至 -2 ^ 31-1
- 默认值:0.0
- 备注:float类型后缀f/F为,不区分大小写,定义float类型数据必须加后缀,float运算时可能会丢失精度
- 举例:float a = 1.1F; float b = 2.2f; float c = a + b;
- 包装类:Float
7.double
- 长度:8字节,64位
- 取值范围:-2 ^ 63 -1 至 -2 ^ 63-1
- 默认值:0.0
- 备注:double类型的后缀为d/D,不区分大小写,可加可不加,double运算时可能会丢失精度
- 举例:double a = 1.1d; double b = 2.2D; double c = a + b;
- 包装类:Double
8.boolean
- 长度:1或者4字节
- 取值范围: true/false
- 默认值为:false;
- 备注:boolean类型的长度比较有争议,目前比较好的结论是根据虚拟机类型有不同的长度
- 举例:boolean a = true;
- 包装类:Boolean