【记录】java中Character和char的区别(包装类)

本文详细介绍了Java中的Character包装类及其与char类型的关系,以及为何需要包装类。包装类允许基本类型在集合和泛型中使用,并支持空值表示。文章还阐述了装箱(自动将基本类型转换为包装类)和拆箱(自动将包装类转换为基本类型)的概念,并通过示例展示了这两个过程。此外,讨论了Java的两种数据类型——基本类型和引用类型的区别。
摘要由CSDN通过智能技术生成

做题的时候发现的,查完资料后记录如下:

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>();
就不行。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值