Java为什么要对基本类型进行包装(装箱和拆箱)
2019-01-14 本文已影响0人
YouMyGod
direct.jpg
先来看下Java的两类类型:
- 基本数据类型,分为boolean、byte、int、char、long、short、double、float;
- 引用数据类型 ,分为数组、类、接口。
Java 为每种基本类型提供了包装类:
- 基本数据类型: boolean,char,byte,short,int,long,float,double
- 封装类类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double
问题来了:Java 为什么要有包装和解包装(装箱和拆箱)?
-
把一个基本类型包装成一个类,一个是可以使这个类型具有很多可以调用的方法。二个是Java向面像对象语言的靠近。其实Java还不算是很纯的面向对象的语言。真正的面向对象,是没有基本数据类型的。它只有一种类型,就是对象。三个是在泛型中,基本类型是不可以做泛型参数的。如:List <int> list = new ArrayList<int> ();这是不合法的。你只能这个样写List<Integer> list = new ArrayList<Integer> ();也就是要用int型的包装类类型来解决基本类型不可以做泛型参数的问题 。重要的是:包装类有更多的方法和用途, 而这是基本类型没有的
-
是Java早年设计缺陷。基础类型是数据,不是对象,也不是Object的子类。
需要装箱才能和其他Object的子类共用同一个接口