常用类(一)----包装类的使用和分析

文章目录

  • 1.包装类
  • 2.课堂测试题
  • 3.包装类方法
  • 4.Integer创建机制
  • 5.Integer面试题

1.包装类

概念:基本数据类型对应的类就是包装类,就是为了把基本数据类型转换为包装类,使用这个类里面的方法操作数据----装箱的过程;

//装箱:基本数据类型->包装类
//拆箱:包装类->基本数据类型int n1 = 100;
//手动装箱
Integer integer = new Integer(n1);
Integer integer1 = Integer.valueOf(n1);//手动拆箱
int i = Integer.intValue();//到了jdk5之后,可以实现自动装箱和拆箱
int n2 = 200;
Integer integer2 = n2;//这个底层还是使用的这个Integer.valueOf方法,return的是new Integer//底层还是手动装箱的过程,只不过这个IDEA底层帮我们完了//自动拆箱
int n3 = integer2;//底层还是进入intValue方法

由此可见,

手动装箱的过程中,需要new基本数据类型,或者是调用这个valueOf方法也是可以的;

手动拆箱就是使用这个intValue方法,把基本数据类型转换为int类型数据;

自动装箱可以把这个整形数据直接赋值给基本数据类型,底层还是使用的valueOf方法,返回包装类的对象;

自动拆箱也是调用这个intValue方法,但是写代码的时候直接把包装类赋值给int类型数据;

2.课堂测试题

下面的代码是否正确:

Double d = 100d;//ok,自动装箱,调用valueOf(100d)
Float f = 1.5f;//ok,自动装箱,调用valueOf(1.5f)

上面的这个代码里面,我们的Double,Float这样的第一个字母大写表示的就是保证类,这个第一个字母大小写也是区分包装类和基本数据类型的一个依据;

上面的两个都是进行装箱过程,自动装箱,因此是可以的;


下面的两个题目的输出结果:

Object obj = true? new Integer(1):new Double(2.0); 
system.out.println(obj);
Object obj2;
if(true)obj2 = new Integer(1)
elseobj2 = new Double(2.0)
system.out.println(obj2);

上面的第一个三目运算符是一个整体,因此这个输出的就是我们的1.0,这个主要是因为这个double的精度更高,因此这个int会转换为double类型的数据,所以这个打印结果是1。0,而不是1;

下面的这个判断语句,就不是一个整体,不会因为这个double类型数据的存在,影响我们的整形数据,因此这个打印输出结果是1;

3.包装类方法

Integer类<—>String类型:相互转化

Integer i = 100;String str1 = i+"";String str2 = i.toString();String str3 = String.valueOf(i);

字符串转换为Integer包装类:

String str4 = "12345";Integer i2 = Integer.parseInt(str4);Integer i3 = new Integer(str4);

其他的数据类型和包装类之间也是可以转化,方法很多,我们用到的时候查阅即可;

4.Integer创建机制

下面的这个案例是一个Integer创建机制的说明:

public class Main {public static void main(String[] args) {Integer i = new Integer(1);Integer j = new Integer(1);System.out.println(i==j);Integer m=1;//调用Integer.valueOf(1);Integer n=1;//调用Integer.valueOf(1);System.out.println(m==n);Integer x=128;Integer y=128;System.out.println(m==n);}

在上面的这个里面:

第一个判断相等:我们是new两个对象,这个i,j都是对象,这个地址不可能是一样的,因此不会相等;

第二个判断:我们调用的这个valueOf实现自动装箱的过程,下面的这个图片里面就是我们的valueOf源代码,范围是-128到127时候,就会直接在数组返回,不在这个范围就会new对象,这个时候地址就不会相同了;

第三个判断:这个128不在我们的这个范围里面,因此会new对象,因此这个第三个的输出结果不会一样;

这个low就是-128,这个源码里面的high就是127,cache是数组,在这个范围里面返回的就是数组里面的元素

image-20241011171537253

5.Integer面试题

下面的这个案例需要我们区分一下,相关的注意事项我添加到了注释里面去:

public class test1 {public static void main(String[] args) {
//示例一Integer i1 = new Integer(127);Integer i2 = new Integer(127);System.out.println(i1 == i2);//F---new出来的对象肯定是不一样的~//示例二Integer i3 = new Integer(128);Integer i4 = new Integer(128);System.out.println(i3 == i4);//F---new出来的对象肯定是不一样的~//示例三Integer i5 = 127;//底层 Integer.valueOf(127)Integer i6 = 127;//-128~127System.out.println(i5 == i6); //T----------在范围里面,因此是相同的;//示例四Integer i7 = 128;Integer i8 = 128;System.out.println(i7 == i8);//F-----不在我们的范围里面,因此是不同的~//示例五Integer i9 = 127; //Integer.valueOf(127)Integer i10 = new Integer(127);System.out.println(i9 == i10);//F---//i9是在这个范围里面,返回的是我们的数组里面的数据,但是											//这个,i10就是new出来的,因此两个对象的这个地址肯定是不一样的;//示例六Integer i11 = 127;int i12 = 127;//只要有基本数据类型, 判断的是值是否相同System.out.println(i11 == i12); //T----有基本数据类型i12,因此这个就是一样的//示例七Integer i13 = 128;int i14 = 128;//只要有基本数据类型, 判断的是值是否相同System.out.println(i13 == i14);//T--//有一个i14是基本数据类型,因此这个时候只要两个的数值一样即可;}
}
    Integer i13 = 128;int i14 = 128;//只要有基本数据类型, 判断的是值是否相同System.out.println(i13 == i14);//T--//有一个i14是基本数据类型,因此这个时候只要两个的数值一样即可;
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/444903.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot查询全部部门流程

前端发送请求后&#xff0c;会请求DeptController的方法list()。 package com.intelligent_learning_aid_system.controller;import com.intelligent_learning_aid_system.pojo.Dept; import com.intelligent_learning_aid_system.pojo.Result; import com.intelligent_learni…

ArcGis JS天地图 暗色地图

方法一&#xff1a;使用css filter 在body下增加svg&#xff0c;并增加需要用到的滤镜&#xff0c;这边用到x-rays <svg id"svgfilters" aria-hidden"true" style"position: absolute; width: 0; height: 0; overflow: hidden"version"…

Kafka-初识

一、Kafka是什么&#xff1f; Kafka是一个高度可扩展、弹性、容错和安全的分布式流处理平台&#xff0c;由服务器和客户端组成&#xff0c;通过高性能TCP网络协议进行通信。它可以像消息队列一样生产和消费数据。可以部署在裸机硬件、虚拟机和容器上&#xff0c;也可以部署在本…

鼠标市场洞察:数据分析揭示消费趋势!

鼠标整体数据分析 一. 概述 本报告基于从淘宝商品搜索接口和淘宝精确月销量接口中提取的数据&#xff0c;分析了前百个品牌在销售额上的占比情况。分析涵盖了销售额和占比的数据&#xff0c;为决策提供了依据。(以上两个接口有需求的可以找我要链接&#xff09; 1. 大盘整体…

基于Python flask的豆瓣电影可视化系统,豆瓣电影爬虫系统

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…

ppt压缩文件怎么压缩?压缩PPT文件的多种压缩方法

ppt压缩文件怎么压缩&#xff1f;当文件体积过大时&#xff0c;分享和传输就会变得困难。许多电子邮件服务对附件的大小有限制&#xff0c;而在网络环境不佳时&#xff0c;上传和下载大文件可能耗时较长。此外&#xff0c;在不同设备上播放时&#xff0c;较大的PPT文件还可能导…

基于FPGA的以太网设计(一)

以太网简介 以太网&#xff08;Ethernet&#xff09;是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准&#xff0c;它规定了包括物理层的连线、电子信号和介质访问控制的内容。以太网是目前应用最普遍的局域网技术&#xff0c;取代了其他局域网标准如…

GA-BP回归预测 | MATLAB实现GA-BP多输入单输出回归预测

回归预测 | MATLAB实现GA-BP多输入单输出回归预测 目录 回归预测 | MATLAB实现GA-BP多输入单输出回归预测预测效果基本介绍模型描述遗传算法神经网络GA-BP网络程序设计学习总结参考资料预测效果 基本介绍 MATLAB实现GA-BP多输入单输出回归预测,输入7个特征,输出1个,优化权重…

指针——数组(指针)传参

&#xff08;一&#xff09;前文问题答案解析 1、代码 int(*pa[10])[5] 的解析 某人&#xff1a;嗯&#xff0c;有*pa&#xff0c;这不很明显是个指针嘛&#xff0c;然后 [5] 说明是个数组指针&#xff0c;int类型&#xff0c;[10]。。。。 这这这&#xff0c;很明显不是指针。…

第38讲:Ceph分布式存储集群部署

文章目录 1.Ceph分布式存储集群安装方式2.Ceph集群环境规划3.基础环境配置3.1.设置主机名以及SSH免密登录3.2.配置Ceph yum源 4.部署Ceph分布式存储集群4.1.安装Ceph-deploy自动化部署工具4.2.初始化创建一个Ceph分布集群4.3.在每个节点中部署Ceph集群所有的组件4.4.部署并配置…

DevOps

DevOps中的Dev指的是Development&#xff08;开发&#xff09;&#xff0c;Ops指的是Operations&#xff08;运维&#xff09;&#xff0c;DevOps就是打通开发运维的壁垒&#xff0c;实现开发运维一体化。 一、项目开发考虑的维度 Dev&#xff1a;怎么开发。 Ops&#xff1a…

基于FPGA的以太网设计(二)

一.以太网硬件架构概述 前文讲述了以太网的一些相关知识&#xff0c;本文将详细讲解以太网的硬件架构 以太网的电路架构一般由MAC、PHY、变压器、RJ45和传输介质组成&#xff0c;示意图如下所示&#xff1a; PHY&#xff1a;Physical Layer&#xff0c;即物理层。物理层定义了…

IO进程--day1

一、定义学生结构体 学生信息&#xff1a;学号&#xff0c;姓名&#xff0c;成绩等编写2个函数 save_stu 和 load_stu save_stu通过 fprintf 将arr数组中的3个学生的所有信息&#xff0c;保存到文件中去 load_stu通过 fscanf 将文件中的3个学生的所有信息&#xff0c;读取到一个…

【cocos creator】输入框滑动条联动小组建

滑动条滑动输入框内容会改变 输入框输入&#xff0c;滑动条位置改变 const { ccclass, property } cc._decorator;ccclass() export default class SliderEnter extends cc.Component {property({ type: cc.Float, displayName: "最大值", tooltip: "" }…

linux设备驱动介绍

目录 一.裸机设备驱动 vs linux设备驱动 1.什么是驱动程序 2.裸机驱动和操作系统驱动有什么区别 3.linux驱动的本质是什么 二.linux设备分类 一.裸机设备驱动 vs linux设备驱动 1.什么是驱动程序 一般来说能让硬件工作起来的程序就是驱动程序,驱动程序提供的是硬件设备操作的…

随机掉落的项目足迹:修改组件库默认样式

需求引入 为了便于讲解&#xff0c;我直接引入案例 在使用element ui的表单组件时&#xff0c;我觉得输入框前面的“文章标题”几个字太小了&#xff0c;想改大一点 解决方法 F12 审查元素&#xff0c;找到“文章标题”对应的代码&#xff0c;发现这个标签对应的类名class&q…

学以致用 SAP HCM 顾问excel函数实战系列

EXCEL函数&#xff1a;在上学的时候&#xff0c;对word、excel、PPT感觉都很简单&#xff0c;稀里糊涂的学&#xff0c;稀里糊涂的忘&#xff0c;然后走向工作岗位的时候&#xff0c;突然发现这三大宝剑无比锋利&#xff0c;可惜自己太菜&#xff0c;曾经努力学习&#xff0c;但…

如何设置 GitLab 密码长度?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 60天专业…

【CSS in Depth 2 精译_047】7.2 CSS 响应式设计中的媒体查询原则(上):深入理解媒体查询的类型

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 【第七章 响应式设计】&#xff08;概述&#xff09; 7.1 移动端优先设计原则&#xff08;上篇&#xff09; 7.1.1 创建移动端菜单&#xff08;下篇&#xff09;7.1.2 给视口添加 meta 标签&#xf…

算法笔记day03

目录 1. 大数加法 2.链表相加(二) 3.大数乘法 1. 大数加法 大数加法_牛客题霸_牛客网 算法思路&#xff1a; 这就是一道模拟题&#xff0c;模拟加法列竖式运算的过程。 class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0…