做题的时候发现的,查完资料后记录如下:
Character是char的包装类,就像Integer和int ,以及Long和long一样。
http://www.cnblogs.com/dolphin0520/p/3780005.html
此作者提供了许多帮助,十分感谢
Character是char的包装类,注意它是一个类,提供了很多方法的。同时我对包装类、封箱等不熟悉,在此也顺带介绍下:
有了基本数据类型,为什么还需要包装类型
第一个是在某些场合不能使用基本类型必须使用包装类,比如集合能接收的类型为Object,基本类型是无法添加进去的
,还有范型也必须使用包装类。
第二个是 值类型是无法赋空值
的,如果使用包装类型Integer score,就可以表示这种情况,因为Integer的默认值为空。
第三个是使用类的方法。假设有这样一个场景,我接收到一个String型的数据想把它转换为整型,如果没有包装类这个操作是无法完成的,有了包装类我们可以这样做:
String num1 = "123";
int num2 = Integer.parseInt(num1);
封箱与拆箱
装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。一共有八种基本数据类型都有对应“封箱”他们分别是:
基本数据类型 包装类
byte Byte
boolean Boolean
short Short
char Character
int Integer
long Long
float Float
double Double
在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:
Integer i = new Integer(10);
而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象,只需要这样就可以了:
Integer i = 10;
这个过程中会自动根据数值创建对应的 Integer对象,这就是装箱。
那什么是拆箱呢?顾名思义,跟装箱对应,就是自动将包装器类型转换为基本数据类型:
Integer i = 10; //装箱
int n = i; //拆箱
简单一点说,装箱就是 自动将基本数据类型转换为包装器类型;
拆箱就是 自动将包装器类型转换为基本数据类型。
回归主题
先介绍:
Java 的两大数据类型:
● 基本类型(或者叫做内置类型)
● 引用数据类型
基本类型:不存在“引用”的概念,基本类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面,而Java语言里面只有这八种数据类型是这种存储模型;
引用数据类型:“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的。
照应开头所讲有些数据结构库类只能操作对象,而不支持基本数据类型的变量,包装类提供一种便利的方式,能够把基本数据类型转换成等价的对象,从而可以利用数据结构库类进行处理。
如:HashMap<Integer, Character> map=new HashMap<Integer,Character>();这样就可以使用,
但是当定义为:
HashMap<Integer, char> map=new HashMap<Integer,char>();
就不行。