一个基础知识小回顾,码太多,基础的东西也要总结,最近推荐一本好书《java的编程逻辑》。里面除了讲述一些基础知识,还对线程并发那一块讲述的很明白,很不多,推荐!下面回归这次主题基本类型的拆箱和装箱。
一、基本类型
java基本类型有8种:
整数:byte(1字节)、short(2字节)、int(4字节)、long(8字节)
浮点数:float、double
布尔值:boolean
字符类型:char
二、基本类型的包装类
除了Integer、Character外,其他类名称与基本类型基本一样,只是首字母大写。
三、为什么要使用包装类?
java中很多代码比如一些容器类只能操作对象,为了能够操作基本类型,需要使用其对应的包装类。同时,包装类提供了一些例如valueOf的方法,方便对数据操作。
四、拆箱和装箱原理
拆箱:将包装类型转成基本类型的过程。
装箱:将基本类型转成包装类型的过程。
拆箱和装箱是java1.5后引入的技术,背后的原理是java编译器提供的能力,实际上是调用对应的valueOf或者xxx-Value方法,例如:
Integer a = Integer.valueOf(50);
int b = a.intValue();
包装类也有构造方法将基本类型转成包装类型,但是一般不推荐。因为从java9开始,这些构造方法被标记已经过时,而且除了Float和Double外,其他包装类都会缓存包装类对象,使用这种方式可以减少创建对象的次数,节省空间,提升性能。
各个包装类有很多共同点:都重写了Object的一些方法(equals、hashcode),Comparable接口,都有一些与String有关的方法,大部分定义了一些不可变的静态变量。
下一篇针对这些详细讲述。