基础数据类型与包装数据类型有哪些?
基本数据类型 | 对应的包装数据类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
为什么会有包装数据类型?
答:
Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。
另外,当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。
基础数据类型与包装数据类型两者的区别?
-
包装数据类型可以为null,基础数据类型不能为null
-
包装类型可用于 POJO 中,而基本类型则不行。原因是:数据库的查询结果可能是 null,如果使用基本类型的话,因为要自动拆箱(将包装类型转为基本类型,比如说把 Integer 对象转换成 int 值),就会抛出NullPointerException 的异常
-
包装类型可以用于泛型,基础数据类型不可以
因为泛型在编译时会进行类型擦除,最后只保留原始类型,而原始类型只能是 Object 类及其子类。
-
存储的方式和位置不同
基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用。所以在效率上,使用基础类型更加高效,因为包装数据类型需要占用更多的内存空间。由此可知,基础类型和包装类型在数值上可能相等,但是实际两者不相等。
包装数据类型的相关方法?
-
Integer转换为字符串方法。Integer.toString()。 Integer.toBinaryString()。
-
字符串转换为整型。parseInt(将字符串类型转换为int类型)。 valueOf(将字符串类型转换为其他类型)
-
比较数据的方法。
compare 比较两个数据的大小,大于输出1,小于输出-1,等于输出0 min 比较两个数据的大小,输出较小的数值 max 比较两个数据的大小,输出较大的数值