Java学习总结 ---------- 包装类

什么是包装类

定义:将基本数据类型封装到类中,即形成包装类。

包装类的作用

包装类的功能主要是将基本数据类型转化为引用数据类型,以便于操作。

  • 使基本数据类型也可以被Object类接收。
  • 基本数据类型也可以存放在集合中。
  • 包装类中包含每种基本数据类型的相关属性如最大值,最小值等,以及一些操作方法。

基本数据类型与之对应的包装类

Java学习总结 ---------- 包装类
除了char和int的包装类需要单独记忆之外,其它的包装类名称都是将基本数据类型的第一个字母大写形成的。

装箱与拆箱

  • 装箱:将基本数据类型变为与之对应的包装类对象。利用构造方法实习装箱处理。
  • 将包装类对象变为与之对应的基本数据类型,利用…Value方法。
    举例:
public class Test {
    public static void main(String[] args) {
        Integer i = new Integer(10);  //手动装箱
        int data = i.intValue();      //手动拆箱
        System.out.println(data);
    }

在JDK5.0之后,提供了自动拆装箱的机制,因此可以直接利用包装类对象直接进行运算。

自动拆装箱

举例:

public class Test {
    public static void main(String[] args) {
        Integer i = 10;   //自动装箱
        System.out.print(++i);  //自动拆箱
    }

包装类对象的“==”问题

public class Test {
        public static void main(String[] args) {
           Integer i = new Integer(10);
           Integer j = new Integer(10);
            System.out.println(i.equals(j));
            System.out.println(i == j);
        }

输出结果:
Java学习总结 ---------- 包装类
解析:equals方法比较的是堆内存的内容,==比较的是堆内存的地址.仅此而已。
Java学习总结 ---------- 包装类

public class Test {
        public static void main(String[] args) {

           Integer i = 10;
           Integer j = 10;
           System.out.println(i == j);
           Integer m = 200;
           Integer n = 200;
            System.out.println(m == n);

        }

运行结果:
Java学习总结 ---------- 包装类
解析:对于自动装箱,形如Integer i = ? ,在-128到127的范围内赋值,底层会维护一个常量池,如常量池中有此对象则会复用,不再创建,但出了这个范围则不会复用。
Java学习总结 ---------- 包装类
包装类对象与基本类型的比较

public class Test {
        public static void main(String[] args) {
            int i = 200;
            Integer j = 200;
            Integer k = new Integer(200);
            System.out.println(i == j);
            System.out.println(i == k);

        }

运行结果:
Java学习总结 ---------- 包装类
在混用包装类对象与基本数据类型时,包装类对象会首先进行拆箱,然后在进行使用。

字符串与基本数据类型的转换

在开发中,接受用户输入的信息一般都是字符串类型,因此必须考虑如何将字符串类型转换为对应的基本数据类型。
待续。。。