java--包装类

目录

1、包装类的定义

2、意义

3、八大基本类型的包装类

4、转换

5、自动拆箱和自动装箱

6、面试问题:请阐述128陷阱以及出现的原因


1、包装类的定义

        把基本类型包装--包装类

2、意义

        1、在面向对象中,“一切皆为对象”,但是基本类型不是不符合这一理念,为了统一此理念,为基本类型包装成引用类型的数据

        2、基本类型对应的包装类型,除了可以满足基本类型的基本需求,还额外附加了丰富的能力,比如:涉及类型间的转换,数据类型间的基本操作(四舍五入等)

3、八大基本类型的包装类

基本类型

包装类

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

4、转换

     Integer 为例:

基本类型与包装类的转换就是拆箱装箱的过程

        Integer 为例:

                int ------->Integer (装箱)

                Integer ------->int(拆箱)

1、int -->Integer:   这样就可以使用Integer的方法 a1 点 就可以使用  a 点 就不行

        使用Integer 的构造方法 参数为整形

int a = 10;
Integer a1 = new Integer(a);
//补充:使用Integer.valueOf()
int a = 10;
Integer  a1 = Integer.valueOf(a);

2、Integer-->int:

        使用Integer 中的intValue()方法,返回值类型为 int

Integer  a1 =12;
int b = a1.intValue();

3、Integer-->String

        使用Integer 中的toString()方法,返回值类型为String

Integer  a1 =12;
String s = a1.toString();

4、String-->Integer

        使用Integer 的构造方法 参数为String,

        注意 s字符串的内容只能为数字

String a = "12234";
Integer s1 = new Integer(s);

5、int-->String

        使用String中的valueOf()方法返回值类型为String

int a = 10;
String b = String.valueOf(a);

6、String-->int

        使用Integer 的parseInt()方法

String a = "12234";
int b = Integer.parseInt(a);

总结:其它类型 转 包装类,只需要使用包装类的构造方法,参数不同而已

包装类中有 自身 转成 各种类型 的方法,直接使用即可

5、自动拆箱和自动装箱

        Java之前,基本类型和包装类型的转换是需要手动进行的,从java5之后开始提供自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)

        自动装箱

int a = 10;Integer  a1 = a;

        自动拆箱

Integer b = new Integer(23);int bb = b;

6、面试问题:请阐述128陷阱以及出现的原因

		Integer num1 = 100;Integer num2 = 100;System.out.println(num1==num2);----trueInteger num3 =128;Integer num4 =128;// byte 范围内:-128----127  相等  超过了就不相等System.out.println(num3==num4);----false

解释:

//因为是自动装箱 Integer num3 =128;
//默认使用的是 Integer ss =  Integer.valueOf(11);
//valueOf方法如下:
public static Integer valueOf(int i) {if (i >= IntegerCache.low && i <= IntegerCache.high)return IntegerCache.cache[i + (-IntegerCache.low)];return new Integer(i);}
}

        这个方法的传参在一定范围内会返回参数值,即默认创建了一个数组,如果在范围内直接使用即可,但是如果超出范围就会new 一个返回,就会新建一个地址,而 == 是比较地址 所以会返回false

        原因:Integer 的valueOf()方法,如果数值在 -128--127 之间的数据都存储在一个catch数组中,该数组相当于一个缓存,当我们在 -128 --127 之间自动装箱的时候,程序会直接返回该值在数组的中内存地址,所以在 -128--127 之间的数值用 == 进行比较是相等,而不在这个区间的数,需要新开辟一个内容空间,所以不相等

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

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

相关文章

fiddler使用(三)-工具栏介绍

Fiddler是一个强大的网络调试工具&#xff0c;它可以帮助用户捕获HTTP和HTTPS请求和响应&#xff0c;从而进行调试和分析。在Fiddler的用户界面中&#xff0c;工具栏是一个非常重要的组成部分&#xff0c;它提供了许多常用的操作和功能&#xff0c;方便用户进行网络调试。以下是…

布局香港之零售中小企篇 | 传承之味,迈向数字化经营的时代

随着内地与香港两地经贸合作日渐紧密&#xff0c;越来越多内地消费品牌将目光投向香港这片充满机遇的热土&#xff0c;纷纷入驻香港市场。「北店南下」蔚然成风&#xff0c;其中不乏已在内地市场深耕多年的传统老字号。数字化经营时代&#xff0c;老字号焕新刻不容缓&#xff0…

Git-常规用法-含解决分支版本冲突解决方法

目录 前置条件 已经创建了Gitee账号 创建一个远程仓库 Git的优点 版本控制 Git 下载 Git的使用 检查Git的是否安装成功 git的常用命令 常用流程 Git 分支 分支流程 Git 远程仓库 远程仓库流程 特殊 可能遇到的问题 前置条件 已经创建了Gitee账号 创建一个远程仓…

求1000以内正整数的平方根(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;int number 0;int result 0;//提示用户&#xff1b;printf("请输入1000以内求平方根的…

【c++leetcode】14. Longest Common Prefix

问题入口 解决方案 class Solution { public:string longestCommonPrefix(vector<string>& v) {string ans "";sort(v.begin(), v.end());int n v.size();string first v[0],last v[n - 1];for(int i 0; i < min(first.size(),last.size()); i){…

密码学 | 椭圆曲线数字签名方法 ECDSA(下)

目录 10 ECDSA 算法 11 创建签名 12 验证签名 13 ECDSA 的安全性 14 随机 k 值的重要性 15 结语 ⚠️ 原文&#xff1a;Understanding How ECDSA Protects Your Data. ⚠️ 写在前面&#xff1a;本文属于搬运博客&#xff0c;自己留着学习。同时&#xff0c;经过几…

树莓派安装Nginx服务结合内网穿透实现无公网IP远程访问

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx&#xff08;发音为“engine-x”&#xff09;可以将您的树莓派变成一个强大的 Web 服务器&#xff0c;可以用于托管网站或 Web 应用程序。相比其他 Web 服务器&#xff0c;Ngi…

CentOS7.9上安装Oracle11g详解

目录 一、环境准备1.安装依赖2.查看libaiobaio版本3.修改host&#xff0c;绑定主机名4.关闭selinux 二、安装配置1.创建组、用户2.修改内核参数3.配置Oracle用户参数4.修改/etc/pam.d/login 文件5.修改/etc/profile 文件6.创建数据库相关目录7.安装包上传、解压8.添加环境变量 …

修改element-ui中el-calendar(日历)的样式

效果图如下&#xff1a; <template><div class"dashboard-container"><el-card style"width: 350px; height: auto; border-radius: 8px"><div class"custom-style"><p class"new-data">{{ newDate }}&…

macbook怎么录屏幕视频?两款实用工具推荐!

在数字化时代&#xff0c;录制屏幕视频已成为我们日常生活和工作中不可或缺的一部分。MacBook作为一款广受欢迎的电脑品牌&#xff0c;为我们提供了高效且便捷的屏幕录制方式&#xff0c;可是很多用户不知道macbook怎么录屏幕视频。本文将介绍两种在Mac上录制屏幕视频的方法&am…

OpenCV——SUSAN边缘检测

目录 一、SUSAN算法二、代码实现三、结果展示 OpenCV——SUSAN边缘检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、SUSAN算法 Susan边缘检测是一种经典的边缘检测算&#xff0c;它由Susan Smith…

【muduo源码学习】one-loop-per-thread核心原理

在 TCP 网络编程中&#xff0c;这里我们特指在单机的环境下&#xff0c;主要关注两件事。第一&#xff0c;如何正确的处理TCP的连接和断开&#xff0c;以及正确处理数据的收发&#xff1b;在错综复杂的网络环境中&#xff0c;这并非易事&#xff0c;涉及很多细节。第二&#xf…

【JAVA基础篇教学】第十七篇:Java单元测试

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第十七篇&#xff1a;Java单元测试。 单元测试和集成测试是软件开发过程中至关重要的一部分&#xff0c;它们可以帮助确保代码的质量和稳定性。下面我将为您提供详细说明和代码案例。 一、单元测试&#xff08;Unit Test…

Leetcode 221. 最大正方形

心路历程&#xff1a; 这道题是一个动态规划题&#xff0c;但是其实递推关系很难想到&#xff0c;如下图所示&#xff1a; MDP建模&#xff1a; 状态&#xff1a;以i,j为右下角的正方形 动作候选集&#xff1a;这道题的动作候选集其实是是否选择其左上角邻接的三个位置&#x…

11.范式与反范式设计

范式 1.问题 MySQL的库表设计&#xff0c;在很多时候我们都是率性而为&#xff0c;往往在前期的设计中考虑不全面&#xff0c;同时对于库表结构的划分也并不明确&#xff0c;所以很多时候在开发过程中&#xff0c;代码敲着敲着会去重构某张表结构&#xff0c;甚至大面积重构多…

深圳比创达电子EMC|EMC电磁兼容性:电子设备稳定运行的保障

随着科技的飞速发展&#xff0c;电子设备在人们的日常生活中发挥着越来越重要的作用。然而&#xff0c;随之而来的电磁干扰问题也日益突出。电磁兼容性&#xff08;EMC&#xff09;作为衡量电子设备在电磁环境中正常工作能力的关键指标&#xff0c;其重要性不言而喻。 一、EMC…

IP地址是随着网络变化的吗?

IP地址&#xff0c;即互联网协议地址&#xff0c;是分配给每个联网设备或网络接口的数字标签。它在网络通信中起着至关重要的作用&#xff0c;是设备之间互相识别和通信的基础。然而&#xff0c;关于IP地址是否随着网络变化&#xff0c;这是一个值得深入探讨的问题&#xff0c;…

深度残差收缩网络中,使用 Sigmoid 函数的用意在哪?

在深度残差收缩网络中&#xff0c;使用 Sigmoid 函数将输出归一化到 0 和 1 之间的目的是为了限制输出值的范围&#xff0c;并且使得输出可以被解释为概率。这个 Sigmoid 函数的输出可以被看作是一个置信度或者概率的度量&#xff0c;表示某个事件发生的可能性。 在设置阈值时…

详解playwright 官方Javascript demo(适合小白)

如果大家刚上手playwright&#xff0c;并看到了Javascript脚本的官方demo&#xff0c;代码如下&#xff1a; const { webkit } require(playwright);(async () > {const browser await webkit.launch();const page await browser.newPage();await page.goto(http://what…

开放式耳机怎么选?五大市场热卖爆款推荐!

近年来&#xff0c;开放式耳机风潮席卷市场&#xff0c;各大知名品牌纷纷推出新品&#xff0c;以满足消费者的需求。相较于传统的入耳式耳机&#xff0c;开放式耳机凭借其独特的佩戴方式&#xff0c;受到了广大消费者的热烈追捧。它不仅有效避免了长时间佩戴带来的耳道不透气、…