一颗野生种子计划收集原力

 

 分类栏目:Java高级特性的原理

 

 版权

 

 什么是包装?

 

 

 

 Java设计的一个核心原则是,一切都是对象,也就是说,一切都需要以对象的形式来描述,但是基本的数据类型不是对象,这是非常尴尬和矛盾的。为了解决这个令人尴尬的矛盾,基本数据类型被打包到一个对象中,并且这些类型以面向对象的方式使用。

 

 

 

 包装功能?

 

 

 

 它是以基本数据类型封装的形式描述的,这使得函数更加健壮。例如,如果缺省情况下整数不是int的0而是null,那么与基本数据类型相比,它对打包的类对象来说还有一个状态,就像你是国王一样。除了0表示您没有记录之外,null还表示您运行了一半。

 

 

 

 另一个直观的事情是包装器类为我们提供了许多使用方法,例如,数据可以被转换成二进制,最大值和最小值可以被查看。

 

 

 

 除了以上所述,还有另一个要点:基本数据类型不能存储在集合中,只能存储对象,所以在使用集合时,我们需要使用打包类对象。

 

 

 

 什么是包装和拆包?

 

 

 

 打包:将基本数据类型转换为相应的打包类对象。

 

 

 

 解包:打包类对象被转换成相应的基本数据类型。

 

 (包装和拆包、自动包装和拆包操作俯视图)

 

 

 

 Java提供了八种数据类型,对应于八种打包类型

 

 

 

 基本数据类型包装类型

 

 字节字节

 

 短命

 

 intInteger

 

 龙龙

 

 浮动浮动

 

 doubleDouble

 

 charcharcharacter

 

 布尔字节

 

 注意:

 

 

 

 有人想知道吗?为什么没有弦???

 

 

 

 或者看到我文章的小朋友发现了它。您是否经常忘记基本数据类型,并随身携带字符串(→ _ →)

 

 

 

 请记住,字符串不是Java中的基本类型,字符串是一个对象

 

 

 

 好吧,说重点

 

 

 

 填充操作

 

 

 

 将基本类型转换为相应的打包类对象

 

 

 

 第一种包装方法:直接使用新的

 

 

 

 int i = 10

 

 整数数量=新整数(I);

 

 系统输出打印(数字);

 

 1

 

 2

 

 3

 

 第二种打包方法:调用valueOf()

 

 

 

 整数num_2 =整数值(20);

 

 System.out.println(“调用valueOf()的方法”:+num _ 2);

 

 1

 

 2

 

 运行结果

 

 

 

 扩展点:

 

 

 

 细心的朋友,你会发现,嘿,印刷对象不应该是地址,而是数字吗?

 

 

 

 上面写了什么?

 

 

 

 ToString也包含在打包类中

 

 

 

 公共字符串到字符串(){

 

 返回到字符串(值);

 

 }

 

 1

 

 2

 

 3

 

 拆包操作

 

 

 

 与打包相反,打包类对象被转换成相应的基本数据类型

 

 

 

 调用IntValue来解包,这里实际上是将整型转换为整型

 

 

 

 整数num_1 =整数值(20);

 

 int num _ 2 = num _ 1 . int value();

 

 system . out . println(num _ 1);

 

 system . out . println(num _ 2);

 

 1

 

 2

 

 3

 

 4

 

 运行结果

 

 

 

 (直观的区别是num_1变量是一个整数包装类对象,所以您可以调用一个方法,而num_2是一个基本类型int。)

 

 

 

 

 

 自动包装

 

 

 

 基本数据类型直接分配给打包类对象

 

 

 

 整数num _ 1 = 66

 

 system . out . println(num _ 1);

 

 1

 

 2

 

 自动拆包

 

 

 

 包类对象直接分配给基本数据类型

 

 

 

 整数num _ 1 = 66

 

 int num _ 2 = num _ 1;

 

 system . out . println(num _ 2);

 

 1

 

 2

 

 3

 

 运行结果

 

 

 

 太神奇了,不是吗??

 

 

 

 我们不必自己打包行李

 

 

 

 相信你的野生种子!非常糟糕。

 

 

 

 那是谁为我们做的?

 

 

 

 当然,这是我们的JVM。当我们编译它的时候,我们增加了它的值并装箱

 

 

 

 想问我怎么知道吗?

 

 

 

 偷偷告诉你,使用反编译工具查看编译后的类文件,有代码和真理

 

 

 

 我在编译的时候为你添加的。我没想到会这样,哈哈

 

 

 

 有一个这样的术语叫做:语法糖

 

 

 

 吃完这个语法糖后,我帮你做了作业,真的很甜。

 

 

 

 自动打包和解包本质上是在编译时为您添加值Of或intValue

 

 

 

 自动包装值

 

 

 

 整数num_1 =整数值(66);

 

 1

 

 自动解包输入值

 

 

 

 int num _ 2 = num _ 1 . int value();

 

 1

 

 最后:

 

 

 

 如果我们深入一点,我们可以再次分析这两个关键词的一些机制:valueOf和intValue,但是昨天这篇文章写了我一整天,今天早上它还在修修补补,时间总是来去匆匆。我想我只能留下来写一次。自从我开始写博客,我写得很慢,但这也是非常真实的,因为分享我所能和认真的是我不变的信条。如果你能读这篇文章,它表明我们彼此非常亲近。我希望给你一些帮助。这不容易创造。拿走我文章的知识。我最大的动机是和你在一起,表扬,评论和关注。

 

 ———————————————

 

 版权声明:本文是CSDN博主“一颗野生种子”的原创文章,符合CC 4.0 BY-SA版权协议。请附上原始源链接和此声明。

 

 原始链接:https://blog.csdn.net/A_hxy/article/details/106967415

----------------------------------------------------------------------------------

哇谷im_im即时通讯_私有云_公有云-哇谷云科技官网-JM沟通

IM下载体验 - 哇谷IM-企业云办公IM即时聊天社交系统-JM 沟通下载

IM功能与价格 - 哇谷IM-提供即时通讯IM开发-APP搭建私有化-公有云-私有化云-海外云搭建

新闻动态 - 哇谷IM-即时通讯热门动态博客聊天JM沟通APP

哇谷IM-JM沟通热门动态博客短视频娱乐生活

关于哇谷-哇谷IM-提供企业即时通讯IM开发-语音通话-APP搭建私有化-公有云-私有化云-海外云搭建

联系我们 - 哇谷IM-即时通讯IM私有化搭建提供接口与SDK及哇谷云服务

即时通讯IM融云世界

IM即时通讯钉钉技术:企业IM钉钉在后端架构上的优越之处

新的市场叫板环信、融云、腾讯云!开源版IM即使聊天工具

企业IM即时通讯聊天办公APP钉钉技术分析交流

哇谷云-怎么样正确认识海外云服务器

公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?