1.包装类介绍
在java中有一个设计原则“一切皆对象”,java中的基本数据类型就完全不符合这种设计思想,因为八种基本数据类型并不是引用数据类型,所以java中为了解决这样的问题,JDK1.5以后引入了八种基本数据类型的包装类 。
2.基本数据类型包装类
基本数据类型 | 包装类 |
int | Integer |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
byte | Byte |
short | Short |
long | Long |
八种包装类分为两大类型:
Number:Integer、Short、Long、Double、Float、Byte都是Number的子类表示一个数字。
Object:Character、Boolean、都是Object的直接子类
3.装箱及拆箱操作
将一个基本数据类型转换为包装类,那么这样的操作称为装箱操作。将一个包装类转换为一个基本数据类型,这样的操作称为拆箱操作。
方法 | 描述 |
byteValue() | Byte->byte |
doubleValue | Double->double |
floatValue() | Float->float |
intValue() | Integer->int |
longValue() | Long->long |
shortValue() | Short->short |
4.转型操作
在包装类中,可以将一个字符串变为指定的基本数据类型,一般在输入数据时会使用较多。
在Integer类中将String变为int型数据:public static int parseInt(String s)
在Float类中将String变为float型数据:public static float parseFloat(String s)
注意:转型操作时,字符串必须由数字组成,否则会出现错误哦
5.享元设计模式
享元模式(Flyweight Pattern) 它使用共享对象,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似对象:它适合用于当大量对象只是重复因而导致无法令人接受的使用大量内存。通常对象中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时在将他们传递给享元。
运用共享技术有效的支持大量细粒度的对象。
/**
jdk1.5新特性:包装类
一、包装类的赋值方式
(1)使用new关键字创建对象
(2)直接给包装类赋值
*/
public class WrapperClassDemo{
public static void main(String[] args){
Long x1 = new Long(100);//创建包装类对象
long x2 = 100L;
Long x3 = 100L;//直接给包装类赋值(自动装箱)
long x4 = x3;//(自动拆箱)
long x5 = x3.longValue();//手动拆箱
//字符串转基本数据类型必须为数字型的字符串
String s1 = "12345";
int x6 = Integer.parseInt(s1);//把一个字符串转换为int基本数据类型
System.out.println(x6);
Integer x7 = Integer.valueOf(s1);
System.out.println("x7="+x7);
System.out.println("------------------------------");
Integer x8 = new Integer(10);
Integer x9 = new Integer(10);
//Integer直接赋值时,当值为1个字节内的数时,将使用同一个对象
//Byte Short Long Integer 享元设计模式
Integer x10 = 127;
Integer x11 = 127;
System.out.println(x8==x9);
System.out.println(x8==x10);
System.out.println(x10==x11);
}
}