包装类
何为包装类?
基本类型包装类的概述: 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据 包装类是将基本数据类型的值包装为Java中的对象,Java语言为8种基本数据类型分别提供了包装类 首先看一下八大数据类型的包装类: 包装类型出现的原因: 因为Java是一个面向对象的语言,基本类型并不具有对象的性质,为了与其他对象“接轨”就出现了包装类型,它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作
常用的操作:用于基本数据类型与字符串之间的转换
Integer类: 在这里就讲一下这个类,其他七个可以去查官方文档,用法什么的都是一样的。
Integer的构造方法:
Integer(int value)
Integer(String s)
例:
Integer i1 = new Integer(123);
Integer i2 = new Integer("123");
System.out.println(i1);
System.out.println(i2);
最重要的就是String和int类型的相互转换,当然这就需要用到Integer的一些方法: 首先, int----->String:
int a = 100;
String s1 = "" + a;
System.out.println(s1);
String s2 = String.valueOf(a);
System.out.println(s1);
String----->int:
String s = "100";
Integer i = Integer.valueOf(s);
i.intValue();
System.out.println(i);
int y = Integer.parseInt(s);
System.out.println(s);
Integer的equals方法: Integer的equals方法继承自Object,并且进行了重写,也就是判断两个Integer值是否相等:
Integer i1 = new Integer(123);
Integer i2 = new Integer("123");
boolean b = i1.equals(i2);
System.out.println(b);
Integer的其他主要方法,红色字体便是方法名:大家可以自行去尝试
基本类型和包装类型的总结:
- 基本类型的优势:数据存储相对简单,运算效率比较高
- 包装类的优势:有的容易,比如集合的元素必须是对象类型,满足了java一切皆是对象的思想
- 声明方式不同:基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间
- 存储方式及位置不同:基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用来使用;
- 初始值不同:基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null
- 使用方式不同,基本类型直接赋值直接使用就可以
在Java中,还有很多的类,比如Math,System,Date等等,若有需要这些都可以参考Java官方文档。
自动装箱和拆箱:
装箱:把基本数据类型转换成相应的包装类型 拆箱:把包装类型类型转换成相应的基本数据类型
装箱:
Integer i1 = new Integer(100);
Integer i1 = 100;
拆箱:
Integer i1= 100;
i1 = i1.intValue()+200;
System.out.println(i1);
nteger i1 = 100;
i1+=200;
System.out.println(i1);
但是我们会发现一个小问题:
Integer i = null;
i+=100;
System.out.println(i);
Integer i = null;
if(i!=null){
i+=100;
}
System.out.println(i);
所以我们需要注意:
- 只要是对象,在操作前,必须做一个不为null的判断
实际上,包装类比基本类型更好用——基本类型能做的事情,包装类也能做。 但包装类能做的,基本类型不一定能做,比如要赋一个 null 值。
|