的网站建设/网站内搜索
目录
- 前言
- 1、包装类(Wrapper)
前言
本文主要介绍java中的包装类
1、包装类(Wrapper)
Java是面向对象的编程语言,但它也包含了8种基本数据类型,这8种基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有成员变量、方法可以被调用。
- 针对八种基本数据类型定义相应的引用类型—包装类(封装类);
- 有了类的特点,就可以调用类中的方法,Java才是真正的面向对象。
自动装箱与自动拆箱:
装箱:基本数据类型包装成包装类的实例
- 通过包装类的构造器实现:
int i = 500;
Integer t = new Integer(i);
- 还可以通过字符串参数构造包装类对象:
Float f = new Float(“4.56”);
Long l = new Long(“asdf”); //NumberFormatException
拆箱:获得包装类对象中包装的基本类型变量
- 调用包装类的.xxxValue()方法:
boolean b = bObj.booleanValue();
JDK1.5之后,支持自动装箱,自动拆箱。但类型必须匹配。
字符串转与基本数据类型的相互转换:
- 字符串转换成基本数据类型:
- 通过包装类的构造器实现:int i = new Integer(“12”);
- 通过包装类的parseXxx(String s)静态方法: Float f = Float.parseFloat(“12.1”);
- 基本数据类型转换成字符串:
- 调用字符串重载的valueOf()方法:String fstr = String.valueOf(2.34f);
- 更直接的方式:String intStr = 5 + “”;
@Test
public void wapperTest() {//类型自动提升Object o1 = true ? new Integer(1) : new Double(2.0);System.out.println(o1);//1.0Object o2;if (true)o2 = new Integer(1);elseo2 = new Double(2.0);System.out.println(o2);//1Integer i = new Integer(1);Integer j = new Integer(1);System.out.println(i == j);// false/** 系统把一个-128~127之间的整数自动装箱成Integer实例,* 并放入了一个名为cache的数组中缓存起来。* 如果以后把一个-128~127之间的整数自动装箱成一个Integer实例时,* 实际上是直接指向对应的数组元素,* 因此-128~127之间的同一个整数自动装箱成Integer实例时,* 永远都是引用cache数组的同一个数组元素,所以它们全部相等;* 但每次把一个不在-128~127范围内的整数自动装箱成Integer实例时,* 系统总是重新创建一个Integer实例,所以出现程序中的运行结果。*/Integer m = 1;Integer n = 1;System.out.println(m == n);// true 相当于new了一个Integer对象Integer x = 128;Integer y = 128;System.out.println(x == y);// false 相当于new了一个Integer对象
}