包装类

简介: 包装类

什么是包装类

在面向对象当中 “一切皆对象”

基本数据类型变量不是对象,比如 int a = 10; 当中就没有对象,所以就很矛盾

此时我们就可以对象基本数据类型进行包装,把基本数据类型包装一个对象。

把基本数据类型变的更强大,以面向对象的思想来去使用这些类型。

对基本数据类型包装的好处

使用包装对象后,功能变的更加强大。

以前使用 double 来去表示一个人的分数

此时这个人的分数考了 0 分,可以表示 0.0

如果这个人没有来考试,那就代表这个没有分数 使用包装类型后, 即可表示这两种状态一个 0.0 一个 是 null

基本数据类型就办不到。

包装类当中给我们提供了很多方法,可以直接过来使用

我们要将一个数据转成二进制

使用包装对象后, 就可以直接调用方法算出来

不需要我们再去手动去算。

对基本数据类型进行了增加 —> 每一个基本数据类型都对应一个类,有了类之后, 可以以对象的方式来使用这些类型

装箱操作

概念

把基本数据类型变成 包装类

Integer num = new Integer(10);
Integer num2 = Integer.valueOf(20);
System.out.println(num.MAX_VALUE);
System.out.println(num.MIN_VALUE);
System.out.println(num.TYPE);// 知道是有什么基本数据类型包装过来的
double b = 13.5;
Double num3 = new Double(b);
Double num4 = Double.valueOf(14.2);
System.out.println(num2);

int xq = 20;
Integer xq1 = new Integer(xq);
//可以把一个字符串转成Integer类型   字符串当中必须得是数字 
Integer str = new Integer("123");
System.out.println(str);
//把整数 转成二进制
System.out.println(Integer.toBinaryString(5));
Double d =  new  Double(10.5);
System.out.println(d.SIZE);

基本数据类型对应的包装类

自动装箱

可以直接把一个基本数据 类型的值赋值给包装类对象。

拆箱操作

概念

把包装类对象转成对应的基本数据类型我们称为拆箱。

//装箱操作:把一个基本数据类型的值,转换为对应的包装类对象。
Integer num1 = new Integer(10);
Integer num2 = Integer.valueOf(15);
//拆箱操作:把包装类的对象,转换为对应的基本数据类型的变量
int num3 =  num2.intValue();
System.out.println(num2);
System.out.println(num3);
Double d = Double.valueOf(10.5);
double d1 = d.doubleValue();
Long l = new Long(100);
long l1 = l.longValue();

自动拆箱

可以直接把一个包装类对象赋值给基本数据类型的变量

字符串与基本数据类型和包装类型转换

包装类valueof缓存设计

当使用 valueof 创建一个包装类,它内部的实现会先从缓存当中查看是否已经有该存在匹配条件 的值

如果有就直接返回,不会再去创建新的地址。如果没有,就去创建新的地址。

相关文章
|
算法 安全 数据安全/隐私保护
DSA与RSA的区别、ECC(椭圆曲线数字签名算法(ECDSA))
DSA与RSA的区别、ECC(椭圆曲线数字签名算法(ECDSA))
1539 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的考研资料分享系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的考研资料分享系统的详细设计和实现
200 0
|
Oracle Unix 关系型数据库
在Linux中,什么是Linux操作系统,它的特点是什么?
在Linux中,什么是Linux操作系统,它的特点是什么?
|
前端开发 JavaScript
仿写学校官网 HTML静态网页设计
这篇文章展示了如何设计一个仿学校官网的HTML静态网页,包括实现效果、所需知识点、项目结构和部分核心源码。
仿写学校官网 HTML静态网页设计
|
网络架构 内存技术
OpenPose原理解析
Openpose论文原理总结
837 0
|
存储 机器学习/深度学习 PyTorch
Pytorch-张量形状操作
PyTorch中,张量形状操作至关重要,如reshape用于改变维度而不变元素,transpose/permute用于维度交换,view改形状需内存连续,squeeze移除单维度,unsqueeze添加维度。这些函数帮助数据适应神经网络层间的转换。例如,reshape能调整数据适配层的输入,transpose用于矩阵转置或多维排列,而squeeze和unsqueeze则用于处理单维度。理解并熟练运用这些工具是深度学习中必要的技能。
|
开发工具 Android开发 git
合作开发(Eclipse+git +码云)
合作开发(Eclipse+git +码云)
317 0
|
消息中间件 算法 Java
一文详解 Java 限流接口实现
本文介绍的实现方式属于应用级限制,应用级限流方式只是单应用内的请求限流,不能进行全局限流。要保证系统的抗压能力,限流是一个必不可少的环节,虽然可能会造成某些用户的请求被丢弃,但相比于突发流量造成的系统宕机来说,这些损失一般都在可以接受的范围之内。
一文详解 Java 限流接口实现
|
Linux 网络安全 文件存储
本地部署Jellyfin影音服务器 - 公网远程影音库
作为一颗倔强的韭菜,自然不会甘愿被割,因此打算自建一个私人影音媒体平台。现在,笔者就向大家展示,使用[cpolar内网穿透](https://www.cpolar.com/)+ Jellyfin,自建私人影音平台的全过程。
本地部署Jellyfin影音服务器 - 公网远程影音库
|
Windows
Baumer工业相机堡盟相机LX双网口系列如何配置相机网卡Teaming双网口合并成一个网口进行使用(网口合并)
Baumer工业相机堡盟相机LX双网口系列如何配置相机网卡Teaming双网口合并成一个网口进行使用(网口合并)
458 0