java开发中 包含着8种基本数据类型,但是基本数据类型不能作为对象处理。因此某些常用的比较,类型转换 用起来就比较麻烦。所以java除了基础类型之外,也弄了一个封装类。就是把8种基本数据类型 封装了一下,内部包含常用的api方法。下面来看一下~
Integer
java中的4种基本数据类型的封装类byte short int long 都是继承自java.lang.Number,实现了Compare比较器接口中的compareTo(T)抽象方法.通过三目运算符的方式比较数字之间的大小.
其中 继承了父类Number的抽象类方法 ,包括Integer对象返回4中整形基本数据类型.byteValue,shrotValue,intValue,longValue(相比之下 基础类型之间相互转换 代码 优雅型不好),还有就是最常用的静态方法 valueOf(String s)将字符串变量转换为Inger,parseInt(String s)将string对象转换为int类型。例子如下,虽然用都是可以用的,但这主要是封装类中的自动装箱及自动拆箱完成的。也就是编译器编译为class文件操作完成的。int a=Integer对象 主要是Integer.intValue自动拆箱完成的,而Integer aInteger= Integer.parseInt(string); 也是将int类型自动装箱为Integer类型所完成的.
需要注意的一点是Integer类型中各方法之间的区别
intValue byteValue shrotValue longValue 都是继承自Number的抽象方法属于成员方法,同样的实现自CompareTable接口的 compareTo方法 也是成员方法,只有在封装类 实例化为对象之后才可以使用。而valueOf(String s)转换为Integer对象,parseInt(String s)转换为int类型 都是静态方法 可以直接调用的,后面其他的封装类 估计也是这个道理。类似的。同时通过查看源码发现valueof方法实际上是通过调用调用重载方法valueof(int s),int s=parseInt类型转换而来的。
后面有关 Byte,Short,Long,Double,Char,Boolean大致内容都大同小异,无非就是集成Number类的 实现了基本数据类型的转换,同时实现了Compare接口,利用泛型机制,实现该接口中的compareTo方法,参数类型还不确定。valueOf就是转换为 该封装类型对象的,parsexx就是转换为该封装类对象基本类型的,要么就是intvalue,shortvalue,bytevalue,longvalue等对象成员方法的使用的,还有要么就是类似String字符串类的,重写了equals比较方法的.
Numer
比较重要的一点就是关于类 继承 java.lang.Number数字类的,这个抽象类封装了封装类 转换为基本数据类型的抽象方法,基本类型封装类 继承并重写了这些抽象方法.4种基本数字类型+2个浮点数类型封装类 都继承了Number类 并且重写了该抽象方法