Java中基础类型和包装器类

举报
多米诺的古牌 发表于 2022/10/29 13:17:03 2022/10/29
【摘要】  在数据类型的处理过程中我们知道有基础的八大数据类型,还有与其对应的java中帮我们封装好的包装器类。 为什么数据类型会分为两种类型呢?原因是Java语言是一种面向对象的语言,这种语言中的一切都是对象(万物皆对象),为了的程序编写的方便我们引入了基本数据类型,但是基础数据类型只是用于数据的存储我们没办法去操作这些基本数据类型,因此我们为了能够将这些基本数据类型转化为对象进行操作,就对八大基本数据类
1.简介
       在数据类型的处理过程中我们知道有基础的八大数据类型,还有与其对应的java中帮我们封装好的包装器类。
为什么数据类型会分为两种类型呢?原因是Java语言是一种面向对象的语言,这种语言中的一切都是对象(万物皆对象),为了的程序编写的方便我们引入了基本数据类型,但是基础数据类型只是用于数据的存储我们没办法去操作这些基本数据类型,因此我们为了能够将这些基本数据类型转化为对象进行操作,就对八大基本数据类型中的每一种基本数据类型都引入了对应的包装类型,这样我们就能通过基本数据类型的包装器类对其进行操作了,而且从java5开始引入了自动装箱/拆箱机制,使得二者可以互相进行转换转换。
2.八大基本数据类型对应的包装器类介绍
       byte(整数类型 8位1个字节) -->对应的包装器类:Byte
       short(整数类型 16位2个字节) -->对应的包装器类: Short
       int(整数类型 32位4个字节) -->对应的包装器类:Integer
       long(整数类型 64位8个字节) -->对应的包装器类:Long
       float (浮点类型 32位4个字节)-->对应的包装器类:Float
       double(浮点类型 64位8个字节) -->对应的包装器类:Double
       char (字符类型 2个字节)-->对应的包装器类:Character
       boolean(布尔类型 1个字节) -->对应的包装器类:Boolean
3.类型转换
       我们知道基本数据类型和他们对应的包装器类之间是可以转换的,下面我们以int、Integer、long、Long之间的转换为例子:
       int->long:属于小类型向大类型转换,会自动转换;
       long->int :属于大类型向小类型转换,需要强制转换;
       int->Integer :属于基本数据类型向包装数据类型转换,会自动封箱,可以通过直接赋值或者new的方式将其装进去;

       int->Long :属于基本数据类型向包装数据类型转换,会自动封箱,可以通过直接赋值或者new的方式将其装进去;

       long->Integer : 可以通过Math.toIntExact(xxx)方法进行转换;

       long->Long : 属于基本数据类型向包装数据类型转换,会自动封箱,可以通过直接赋值或者new的方式将其装进去;

       Integer->int : 属于包装数据类型向基本数据类型转换,自动拆箱;

       Integer->long :属于自动拆箱获取对应int类型数据之后会自动转化为long类型;

       Integer->Long : 不能强制或直接获取,但是可以通过先转换为int/long基本数据类型,然后再进行转换。

       Long->int : 包装数据类型向小范围的基本数据类型转换,自动拆箱之后需要强制转换。或者调用获取值得api;

       Long->long : 包装类型转基本类型,自动拆箱;

       Long->Integer : 不能强制或直接获取,但是可以通过先转换为int/long基本数据类型,然后再进行转换。

以上就是基本数据类型和对应的包装器类之间的简单介绍。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。