包装类
- Java为8中基本数据类型有对应准备了8种包装类型。8种4包装类属于引用数据类型。
- 为什么要再提供8种包装类呢?
当一个方法的参数类型是引用类型,而又需要
使用一个基本类型的数据这时候包装类粉墨登场了。(因为8种基本类型不够用) - sun公司将这8中包装类都给包装好了,所以直接用。
- 八种基本数据类型对应的包装类型:
基本数据类型-------包装类型
byte ------------- java.lang.Byte
short ------------ java.lang.Short
int ---------------- java.lang.Integer
long ------------ - java.lang.Long
float -------------- java.lang.Float
boolean --------- java.lang.Boolean
char -------------- java.lang.Character
总结:只有Integer,Character,熟记一下,其它都是首字母大写。他们的父类是Number(抽象类)。
反过来可以将引用数据类型转换成基本数据类型(拆箱)把基本数据类型转换成引用数据类型为装箱。 - 通过访问包装类的常量,来获取最大值和最小值。
- System.out.println(“int的最大值:” + Integer.Max_VALUE);最小值:Integer.MIN_VAlUE;其它包装类,依葫芦画葫芦。
- 在JDK1.5之后,支持自动装箱和自动拆箱。
如:Integer x =100;//自动装箱(基本数据类型自动转换成包装类)
int y = x;//自动拆箱
另外进行加减乘除运算时会促发自动拆装箱。 - String类有一个byte[]数组,被final修饰,因为数组一旦创建长度不可变(字符串对象不可变,不是其引用),并且被final修饰的引用不能在指向其它类型。
- Java中为了提高程序的运行效率,在Integer类加载的时候会初始化整数型常量(static语句块),Integer将[-128,127]中所有的包装对象提前创建好,放到了一个方法区的"整数型常量池中”(cache,缓存机制),用时直接取出来就好了,所以你会发现:
Integer a=128;
Integer b =128;
System.out.println(ab);//false输出为false
而Integer x= 127;
Integer y =127;
System.out.println(xy)//true输出为true
因为引用x,y保存的地址相同。 - Integer常用的方法。
- parseInt(String s)方法将数字字符装换成数字。
- 数字格式化异常:例如:不是Int的数据包装为Integer
- toBinaryString()方法将10进制转换成2进制。
- toHexString()方法将十进制转换成16进制。
- toOctalString()方法将十进制装换成8进制。
- Integer a = integer.valueOf(100);
- Integer b = ineger.valuOf(“100”);
总结:
练习: