序. java基本类型介绍
java中,基本数据类型一共有8种,详细信息如下表:
类型 | 大小 | 范围 | 默认值 |
byte | 8 | -128 - 127 | 0 |
short | 16 | -32768 - 32768 | 0 |
int | 32 | -2147483648-2147483648 | 0 |
long | 64 | -9233372036854477808-9233372036854477808 | 0 |
float | 32 | -3.40292347E+38-3.40292347E+38 | 0.0f |
double | 64 | -1.79769313486231570E+308-1.79769313486231570E+308 | 0.0d |
char | 16 | \u0000 - u\ffff | \u0000 |
boolean | 16 | true/false | false |
Java语言是一种面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,设计者将每个基本数据类型单独封装成一个类,这八个和基本数据类型对应的类统称为包装类(Wrapper Class)。
1.什么是自动拆箱与自动装箱
自动装箱:把基本类型用它们对应的包装类包装起来,使它们具有对象的特质,可以调用所对应的包装类所定义的方法,比如toString()等。
举个例子:
Integer i0 = new Integer(0);
Integer i1 = 2;
Integer i1_ = Integer.valueOf(2);
上面的三行代码第一行是最基本的创建一个integer对象的方式。第二行代码就是我们这里要讲的自动装箱。而第三行代码就是第二行代码的本质,也就是说,当你使用自动装箱来得到一个引用数据类型时,jvm实际上调用了valueOf()方法,稍后我们会去研究一下java源码。
自动拆箱:跟自动装箱的方向相反,将Integer及Double这样的包装类的对象重新简化为基本类型的数据。
举个例子:
1.System.out.println(i1+2);
这句代码就使用了自动拆箱。i1是我们上面通过自动装箱得到的一个integer对象,而这个对象是不