Java面向对象-常用类 (包装类)

常用类 – 包装类

基本数据类型的包装类

理解:包装类是8种基本数据类型对应的类

出现原因:Java是一种纯面向对象语言,但是java中有8种基本数据类型,破坏了java为纯面向对象的特征。为了承诺在java中一切皆对象,java又给每种基本数据类型分别匹配了一个类,这个类我们称之为包装类/封装类。

注意:每个基本数据类型都有一个与之匹配的包装类。

1.1 八大基本数据类型的包装类

基本数据类型引用数据类型包装类
byteBytejava.lang.Byte
charCharacterjava.lang.Character
shortShortjava.lang.Short
intIntegerjava.lang.Integer
longLongjava.lang.Long
floatFloatjava.lang.Float
doubleDoublejava.lang.Double
booleanBooleanjava.lang.Boolean

注意:int的包装类的写法为Integer、char的包装类的写法是:Character

其余基本数据类型的包装类均是基本类型的首字母大写。

1.2 包装类的层次结构

在这里插入图片描述

1.3 包装类中的常用方法

1、手动装箱:把基本数据类型包装为对应的包装类对象

Integer i1 = new Integer(10); // 利用构造方法

Integer i2 = Integer.valueOf(10); //利用包装类中的静态方法

2、手动拆箱把包装类对象转换为对应的基本数据类型。

int i3= i1.intValue(); //返回包装类对象对应的基本数据
3、自动装箱:可以直接把一个基本数据类型赋值给包装类

例如: Integer i1 = 10; //自动装箱操作

4、 自动拆箱:可以直接把一个包装类对象,赋值给基本类型

例如:int a = new Integer(3); //自动拆箱。

自动装箱和自动拆箱,简化了对包装类的操作。

注意:需要理解自动装箱和拆箱的本质

package com.qf.package_class;public class Test01 {public static void main(String[] args) {//手动装箱:基本数据类型 转 引用数据类型
//		int i = 100;
//		Integer integer = Integer.valueOf(i);
//		System.out.println(integer);//手动拆箱:引用数据类型 转 基本数据类型
//		Integer integer = new Integer(100);
//		int i = integer.intValue();
//		System.out.println(i);//JDK1.5开始提供自动装箱和自动拆箱的特性//自动装箱:基本数据类型 转 引用数据类型
//		int i = 100;
//		Integer integer = i;//底层实现:Integer.valueOf(i);
//		System.out.println(integer);//自动拆箱:引用数据类型 转 基本数据类型
//		Integer integer = new Integer(100);
//		int i = integer;//底层实现:integer.intValue();
//		System.out.println(i);//将字符串转换为intString str = "123";int i = Integer.parseInt(str);System.out.println(i);}
}

拆箱、装箱底层实现

  package com.qf.package_class;public class MyInteger {private int value;public MyInteger(int value) {this.value = value;}public int intValue(){return value;}public static MyInteger valueOf(int i){if(i>=MyIntegerCache.low && i<=MyIntegerCache.higt){return MyIntegerCache.cache[i-MyIntegerCache.low];}return new MyInteger(i);}//MyInteger的缓存类private static class MyIntegerCache{static final int low = -128;static final int higt = 127;static final MyInteger[] cache;static{cache = new MyInteger[higt - low + 1];int j = low;for (int i = 0; i < cache.length; i++) {cache[i] = new MyInteger(j++);}}}
}

1.4 包装类面试题:

  package com.qf.package_class;public class MyInteger {private int value;public MyInteger(int value) {this.value = value;}public int intValue(){return value;}public static MyInteger valueOf(int i){if(i>=MyIntegerCache.low && i<=MyIntegerCache.higt){return MyIntegerCache.cache[i-MyIntegerCache.low];}return new MyInteger(i);}//MyInteger的缓存类private static class MyIntegerCache{static final int low = -128;static final int higt = 127;static final MyInteger[] cache;static{cache = new MyInteger[higt - low + 1];int j = low;for (int i = 0; i < cache.length; i++) {cache[i] = new MyInteger(j++);}}	}
}

cache = new MyInteger[higt - low + 1];

		int j = low;for (int i = 0; i < cache.length; i++) {cache[i] = new MyInteger(j++);}}	
}

}


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

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

相关文章

16. Elasticsearch面试题汇总

Java全栈面试题汇总目录-CSDN博客 1. 什么是Elasticsearch? Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTP Web界面和无架构JSON文档的分布式&#xff0c;多租户能力的全文搜索引擎。 Elasticsearch是用Java开发的&#xff0c;根据Apache许可条款作为开源发布…

安全生产月答题pk小程序怎么做

在当今信息化时代&#xff0c;小程序已成为人们日常生活和工作中不可或缺的一部分。特别是在安全生产领域&#xff0c;通过小程序进行答题PK活动&#xff0c;不仅可以提高员工的安全意识&#xff0c;还能促进团队间的协作与交流。本文将详细介绍如何制作一款安全生产月答题PK小…

物体检测算法-R-CNN,SSD,YOLO

物体检测算法-R-CNN&#xff0c;SSD&#xff0c;YOLO 1 R-CNN2 SSD3 Yolo总结 1 R-CNN R-CNN&#xff08;Region-based Convolutional Neural Network&#xff09;是一种基于区域的卷积神经网络&#xff0c;是第一个成功将深度学习应用到目标检测上的算法。它主要由三个步骤组…

8操作系统定义、分类及功能+设备管理+作业管理 软设刷题 软考+

操作系统定义、分类及功能设备管理作业管理 知识点1-55-1010-1515-2020-2525-3030-35 刷题操作系统定义、分类及功能1-55-1010-15作业管理1-5设备管理1-55-10 知识点 1-5 1 嵌入式操作系统的特点&#xff1a; 1.微型化&#xff0c;从性能和成本角度考虑&#xff0c;希望占用的…

盲人社区生活支持体系:织就一张温暖的网

在当今社会&#xff0c;构建一个全面、包容的盲人社区生活支持体系成为了推动社会进步、保障残障人士权益的重要议题。随着科技的不断革新&#xff0c;一款名为“蝙蝠避障”的辅助软件走进了盲人的日常生活&#xff0c;它如同一位无形的向导&#xff0c;通过实时避障与拍照识别…

关于基础的流量分析(1)

1.对于流量分析基本认识 1&#xff09;简介&#xff1a;网络流量分析是指捕捉网络中流动的数据包&#xff0c;并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题。 2&#xff09;在我们平时的考核和CTF比赛中&#xff0c;基本每次都有…

线程的概念和控制

文章目录 线程概念线程的优点线程的缺点线程异常线程用途理解虚拟地址 线程控制线程的创建线程终止线程等待线程分离封装线程库 线程概念 什么是线程&#xff1f; 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一…

VMware虚拟机安装Windows server 2022超详细教程

文章目录 ISO下载安装步骤总结 ISO下载 链接&#xff1a;https://pan.baidu.com/s/19Z2q9KFKZq0pLisPZLn7_g 提取码&#xff1a;3pgn 安装步骤 安装完打开虚拟机后发现引导程序无法正常执行 解决方法见我的上一篇文章&#xff1a;http://t.csdnimg.cn/PzfOz 问题解决完后正常…

计算机毕业设计 | node.js(Express)+vue影院售票商城 电影放映购物系统(附源码+论文)

1&#xff0c;绪论 1.1 项目背景 最近几年&#xff0c;我国影院企业发展迅猛&#xff0c;各大电影院不断建设新的院线&#xff0c;每年新投入使用的荧幕数目逐年显著上升。这离不开人们的观影需求及对观影的过程要求的不断进步。广大观影消费者需要知道自己的空闲时间&#x…

P1【知识点】【数据结构】【链表LinkedList】C++版

链表是一种逻辑上连续&#xff0c;内存上分散的线性表数据结构&#xff0c;是用一组任意的空间&#xff08;可以连续&#xff0c;也可以不连续&#xff09;来存放数据元素。每个数据元素成为一个”结点“&#xff0c;每个结点由数据域和指针域组成。 访问元素&#xff08;Acce…

保护共享资源的方法(互斥锁)

我最近开了几个专栏&#xff0c;诚信互三&#xff01; > |||《算法专栏》&#xff1a;&#xff1a;刷题教程来自网站《代码随想录》。||| > |||《C专栏》&#xff1a;&#xff1a;记录我学习C的经历&#xff0c;看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

工厂模式(简单工厂模式+工厂模式)

工厂模式的目的就是将对象的创建过程隐藏起来&#xff0c;从而达到很高的灵活性&#xff0c;工厂模式分为三类&#xff1a; 简单工厂模式工厂方法模式抽象工厂模式 在没有工厂模式的时候就是&#xff0c;客户需要一辆马车&#xff0c;需要客户亲自去创建一辆马车&#xff0c;…

向上调整建堆与向下调整建堆的时间复杂度 AND TopK问题

目录 前言建堆的时间复杂度TOPK问题总结 前言 本篇旨在介绍使用向上调整建堆与向下调整建堆的时间复杂度. 以及topk问题 博客主页: 酷酷学!!! 感谢关注~ 建堆的时间复杂度 堆排序是一种优于冒泡排序的算法, 那么在进行堆排序之前, 我们需要先创建堆, 为什么说堆排序的是优于…

2023年数维杯国际大学生数学建模挑战赛D题洗衣房清洁计算解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 D题 洗衣房清洁计算 原题再现&#xff1a; 洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性&#xff0c;并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在&#xff…

Ubuntu 20/22 安装 Jenkins

1. 使用 apt 命令安装 Java Jenkins 作为一个 Java 应用程序&#xff0c;要求 Java 8 及更高版本&#xff0c;检查系统上是否安装了 Java。 sudo apt install -y openjdk-17-jre-headless安装完成后&#xff0c;再次验证 Java 是否已安装 java --version2. 通过官方存储库安…

15:00面试,15:08出来,面试问的有点变态。。。。

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天…

第10章 数据聚合与分组运算

以下内容参考自https://github.com/iamseancheney/python_for_data_analysis_2nd_chinese_version/blob/master/%E7%AC%AC05%E7%AB%A0%20pandas%E5%85%A5%E9%97%A8.md 《利用Python进行数据分析第2版》 用以学习和记录。 对数据集进行分组并对各组应用一个函数&#xff08;无论…

Dubbo生态之dubbo功能

1.Dubbo生态功能的思考 dubbo具有哪些功能呢&#xff1f;我们要根据dubbo的架构和本质是用来干什么的来思考? 首先对于分布式微服务&#xff0c;假设我们有两个服务A和B&#xff0c;并且都是集群部署的。那么按照我们正常的流程应该是启动两个微服务项目&#xff08;启动时应该…

vscode添加代办相关插件,提高开发效率

这里写目录标题 前言插件添加添加TODO Highlight安装TODO Highlight在项目中自定义需要高亮显示的关键字 TODO Tree安装TODO Tree插件 单行注释快捷键 前言 在前端开发中&#xff0c;我们经常会遇到一些未完成、有问题或需要修复的部分&#xff0c;但又暂时未完成或未确定如何处…

C++初阶学习第十弹——探索STL奥秘(五)——深入讲解vector的迭代器失效问题

vector&#xff08;上&#xff09;&#xff1a;C初阶学习第八弹——探索STL奥秘&#xff08;三&#xff09;——深入刨析vector的使用-CSDN博客 vector&#xff08;中&#xff09;&#xff1a;C初阶学习第九弹——探索STL奥秘&#xff08;四&#xff09;——vector的深层挖掘和…