包装类

简介: 包装类

什么是包装类

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

基本数据类型变量不是对象,比如 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 创建一个包装类,它内部的实现会先从缓存当中查看是否已经有该存在匹配条件 的值

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

相关文章
|
人工智能 算法 PyTorch
TorchAcc:基于 TorchXLA 的分布式训练框架
阿里云研究员、阿里云人工智能平台 PAI 技术负责人--林伟在GTC 2024 大会 China AI Day 线上中文演讲专场上介绍了TorchAcc,这是一个基于 PyTorch/XLA 的大模型分布式训练框架。
|
8月前
|
人工智能 算法 安全
深度:善用人工智能推动高等教育学习、教学与治理的深层变革
本文探讨人工智能技术与高等教育深度融合带来的系统性变革,从学习进化、教学革新与治理重构三个维度展开。生成式AI作为技术前沿代表,正通过标准化认证体系(如培生的Generative AI Foundations)提升职场人士、教育者及学生的能力。文章强调批判性思维、高阶认知能力与社交能力的培养,主张教师从经验主导转向数据驱动的教学模式,并提出构建分布式治理结构以适应技术迭代,最终实现人机协同的教育新生态,推动高等教育在智能时代焕发人性光辉。
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的考研资料分享系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的考研资料分享系统的详细设计和实现
191 0
|
11月前
|
机器学习/深度学习 算法 PyTorch
PyTorch 实现MobileNetV1用于图像分类
本实验基于PyTorch和昇腾平台,详细讲解了如何使用MobileNetV1模型对CIFAR10数据集进行图像分类。内容涵盖MobileNetV1的特点、网络架构剖析(尤其是深度可分离卷积)、代码实现及训练过程。通过该实验,读者可以掌握轻量级CNN模型在移动端或嵌入式设备中的应用,并了解其在资源受限环境下的高效表现。实验包括数据预处理、模型训练与测试等环节,帮助用户快速上手并优化模型性能。
415 53
|
11月前
|
存储 运维 负载均衡
Hologres 查询队列全面解析
Hologres V3.0引入查询队列功能,实现请求有序处理、负载均衡和资源管理,特别适用于高并发场景。该功能通过智能分类和调度,确保复杂查询不会垄断资源,保障系统稳定性和响应效率。在电商等实时业务中,查询队列优化了数据写入和查询处理,支持高效批量任务,并具备自动流控、隔离与熔断机制,确保核心业务不受干扰,提升整体性能。
303 11
|
机器学习/深度学习 人工智能 缓存
【AI系统】GPU 架构回顾(从2018年-2024年)
2018年发布的Turing图灵架构,采用12nm工艺,包含18.6亿个晶体管,大幅提升了PC游戏、专业图形应用及深度学习推理的效率与性能。Turing引入了RT Core和Tensor Core,分别用于实时光线追踪和加速深度学习计算,支持GDDR6内存,显著提升了数据传输速率和效率。此外,Turing架构还支持NVLink 2.0,增强了多GPU协同工作的能力,适用于复杂的图形渲染和深度学习任务。
697 0
【AI系统】GPU 架构回顾(从2018年-2024年)
|
机器学习/深度学习 缓存 运维
智能化运维:机器学习在故障预测与自动修复中的应用
随着信息技术的飞速发展,企业系统日益复杂,传统运维模式面临巨大挑战。智能化运维作为一种新兴趋势,通过集成机器学习算法,实现对系统故障的预测和自动修复,显著提高运维效率与准确性。本文深入探讨了智能化运维的概念、关键技术及其在故障预测和自动修复方面的应用实例,旨在为读者提供一种科学严谨、数据导向的视角,理解智能化运维的价值与实践路径。
576 27
|
Oracle Unix 关系型数据库
在Linux中,什么是Linux操作系统,它的特点是什么?
在Linux中,什么是Linux操作系统,它的特点是什么?
|
前端开发 JavaScript
仿写学校官网 HTML静态网页设计
这篇文章展示了如何设计一个仿学校官网的HTML静态网页,包括实现效果、所需知识点、项目结构和部分核心源码。
仿写学校官网 HTML静态网页设计
|
JSON 安全 数据安全/隐私保护
elasticdump迁移ES数据详解
elasticdump迁移ES数据详解