Java中有八种基本数据类型,分别为:byte、short、int、long、float、double、char、boolean。
这八种基本类型都有对应的包装类,分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean。
面试时时常会闻到这八种基本类型及其包装类,而且各种基本类型所占的字节数即使记不住、能用代码实现也是可以的。所以给出基本数据类型所占字节的代码。以供大家参考。
@Test public void t1() { //一个字节占8个二进制位 System.out.println("byte的二进制位数:" + Byte.SIZE); System.out.println("byte所占用的字节数:" + Byte.SIZE / 8); System.out.println("short的二进制位数:" + Short.SIZE); System.out.println("short所占用的字节数:" + Short.SIZE / 8); System.out.println("int的二进制位数:" + Integer.SIZE); System.out.println("int所占用的字节数:" + Integer.SIZE / 8); System.out.println("long的二进制位数:" + Long.SIZE); System.out.println("long所占用的字节数:" + Long.SIZE / 8); System.out.println("float的二进制位数:" + Float.SIZE); System.out.println("float所占用的字节数:" + Float.SIZE / 8); System.out.println("double的二进制位数:" + Double.SIZE); System.out.println("double所占用的字节数:" + Double.SIZE / 8); System.out.println("char的二进制位数:" + Character.SIZE); System.out.println("char所占用的字节数:" + Character.SIZE / 8); }
byte的二进制位数:8 byte所占用的字节数:1 short的二进制位数:16 short所占用的字节数:2 int的二进制位数:32 int所占用的字节数:4 long的二进制位数:64 long所占用的字节数:8 float的二进制位数:32 float所占用的字节数:4 double的二进制位数:64 double所占用的字节数:8 char的二进制位数:16 char所占用的字节数:2
所以就可以理解基本数据类型的大小关系:
【byte(1Byte) < char(2Byte) < short(2Byte) < int(4Byte) < float(4Byte) <double(8Byte) < long(8Byte)】 这个排序是错误的!
正确的是:在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为:
(byte,short,char)–int–long–float–double
注意,整数比浮点数低级。低级到高级可以自动转换。而高级到低级需要用代码强制转换,不强转会编译错误。
总结
- 位:”位(bit)”是电子计算机中最小的数据单位。每一位的状态只能是0或1。
- 字节:8个二进制位构成1个”字节(Byte)”,它是存储空间的基本计量单位。
- 1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。
- 字:”字”由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。
- KB:K在二进制中表示1024,也就是2的10次 方。1KB表示1K个Byte,也就是1024个字节。
例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。
字是计算机进行数据处理和运算的单位。
【习题】
一个函数定义的返回值是float,它不能在return语句中返回的值的类型是( )?
A.char B.float C.long D.double
答案:D
double比float高级,long比float低级