Java 语言是一个面向对象的语言,但是 Java 中定义的基本数据类型却是不面向对象的。
有时候我们需要对对象进行操作,有时候我们却需要对基本数据类型进行操作。
基本概念
从 Java 5 开始增加了自动装箱和拆箱。
在基本值和String对象间相互转换,在基本值和String对象之间按不同基数转换,如二进制、八进制和十六进制。
按照 Java 的命名规范,属于对象的数据类型,通常都是以大写字母开头的,基础数据类型是小写字母开头的。
包装类
如果涉及到从基本数据类型到对象数据类型之间的转换的话,就涉及到了包装类。
包装类通常就是在对基础数据类型转换为对象数据类型的时候进行包装用的。
其实就是根据上面的基础数据类型,定义的以大写字母开头的对应的数据类型,在这个数据类型的使用我们可以看成是一个对象就好了。
这个转换过程就称为 装箱 了。
装箱和拆箱
既然有装箱那么就会有拆箱。
拆箱就是将包装数据类型转换为基础数据类型的过程。
Java SE5开始就提供了自动装箱的特性。
因为有自动装箱和拆箱的存在,因此很多时候对数据的定义就简便很多,也提供了不少灵活性。
甚至定义成下面这样也是可以的。
总结
在大部分使用的过程中,知道 Java 具备自动装箱和拆箱的能力就差不多了。
这部分的知识在 Java 1.4 版本的面试过程中通常会被问到,现在问这个问题的已经不多了。
但是不代表你不需要了解,如果你还需要了解更多的内容的话,你就可以读下源代码了解下自动自动装箱和拆箱的机制是什么了。