JavaSE——包装类、装箱与拆箱

news2025/7/20 17:17:49

目录

一、基本概念

1.1 八种包装类及使用场景

1.2 装箱与拆箱的概念

二、以Integer包装类为例

 2.1 Integer的构造方法

 2.2 通过常量获取最大值与最小值

 2.3 自动装箱和自动拆箱(非常重要的面试题)

三、Integer常用方法

    3.1 手动拆箱(过时)

    3.2 静态方法  int parseInt(String)

    3.3  静态方法 十进制转化为二进制字符串

    3.4  静态方法 十进制转化为十六进制字符串

    3.5  静态方法 十进制转化为八进制字符串

四、 String int Integer 类型互换


一、基本概念

 1.1 八种包装类及使用场景

   java中八种基本数据类型对应八种包装类型,属于引用数据类型,父类是java.lang.Number,间接继承Object(除了Character、Boolean以外,Character、Boolean直接继承Object)

  使用场景:

    调用某个方法需要传入一个数字,但是数字是基本数据类型,但是方法的参数是Object引用类型,此时便需要包装类

    简言之:八种基本类型不够用,又引入八种基本类型对应的八种包装类型,如下所示

1.2 装箱与拆箱的概念

  装箱:基本数据类型转化为引用数据类型

  拆箱:引用数据类型转化为基本数据类型

  我们首先看一下Number类中的拆箱方法,这些方法子类都有

二、以Integer包装类为例

    以Integer类为例,其他是一模一样

   2.1 Integer的构造方法

 如下图所示,当我们使用Integer类时,有下面两个构造方法,分别可传入int类型参数、String类型参数

   本类的toString方法也已经给我们重写好了,不比我们再写

//      直接使用数字    从JDK9(Java9)之后便过期了
        Integer x = new Integer(100);
        System.out.println(x);
//      String类型数字
        Integer y = new Integer("555");
        System.out.println(y);

 2.2 通过常量获取最大值与最小值

      这两个都是静态属性,其他的类也是这么调用

        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);

 2.3 自动装箱和自动拆箱(非常重要的面试题)

 好消息:JDK1.5(java5)之后,支持自动拆箱与自动装箱

自动装箱:基本类型类型自动转化为包装类 (底层还是new了一下,依然是引用)

自动拆箱:包装类自动转化为基本类型 (Number类的方法就用不着了,因为可以直接拆箱)

更好的方便了编程,解放程序员的双手

//   自动装箱
     Integer x=100;
//   自动拆箱
     int y =x;

说明:“==”不会触发自动拆箱机制,只有加减乘除时才可触发

 但是!!!下面这个地方很重要

        Integer a=128;
        Integer b=128;
        System.out.println(a==b);

        Integer x=127;
        Integer y = 127;
        System.out.println(x==y);

这里就有一个问题,为什么“==”不可触发,但是第二个输出是true呢?

 -128~127 这段数字在开发中使用的比较多,这个地方有一个整数型常量池,如果没有超过byte的取值范围,就会存储到整数型常量池中,所以在使用-128~127时就不会new对象了,但是128超出了byte取值,所以a,b在使用时会创建对象,在x,y中,保存的内存地址相同所以为true

三、Integer常用方法

    3.1 手动拆箱(过时)

        Integer x = new Integer(1000);
        int y = x.intValue();
        

 

     3.2 静态方法  int parseInt(String)

  int value = Integer.parseInt("123");

   使用情景:

 

      3.3  静态方法 十进制转化为二进制字符串

        String s = Integer.toBinaryString(3);
        System.out.println(s);

  3.4  静态方法 十进制转化为十六进制字符串

        String s = Integer.toHexString(20);
        System.out.println(s);

 

下面这段代码也能看懂了

 

3.5  静态方法 十进制转化为八进制字符串

        String s = Integer.toOctalString(8);
        System.out.println(s);

 

四、 String int Integer 类型互换

 

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

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

相关文章

LeetCode-剑指44-数字序列中某一位的数字

1、找规律 我们通过找规律可以发现&#xff0c;当位数为xxx时&#xff0c;其占用的位数为x910x−1x\times9\times10^{x-1}x910x−1。因此我们可以不断循环并增大位数xxx直至n−x<x910x−1n-x<x\times9\times10^{x-1}n−x<x910x−1&#xff0c;此时数字落在剩余的位数…

HTTP协议加强

HTTP协议加强[TOC](HTTP协议加强)一、HTTP协议简介1.1 什么是通信1.2 什么是通信协议1.3 HTTP二、HTTP请求2.1 什么是HTTP请求消息2.2 HTTP请求消息的组成部分三、HTTP响应3.1 什么是HTTP响应消息3.2 HTTP响应消息的组成部分四、HTTP请求方法4.1 什么是HTTP请求方法4.2 HTTP的请…

接口性能调优的方法,这有11种,你知道几种?

​当我们谈到“软件测试”时&#xff0c;是指软件测试的相关工作&#xff0c;如单元测试、集成测试、系统测试等&#xff0c;但不局限于动态测试&#xff0c;也可以包括静态测试——需求评审、设计评审、代码评审和借助工具进行代码静态分析。 接口性能调优共11种方法&#xf…

Nftea: 世界杯文化、 NFT与 期权的首度碰撞

体育文化&#xff0c;正在成为加密行业发展的新驱动力 卡塔尔世界杯即将在2022年11月20日开幕&#xff0c;随着开赛日期的临近&#xff0c;作为四年一度的足球狂欢盛会&#xff0c;也吊足了全球足球球迷们的胃口。当然&#xff0c;从上个世纪开始&#xff0c;体育文化就成为了商…

Slurm作业管理系统常用命令和教程

Slurm &#xff08; Simple Linux Utility for Resource Management &#xff09;是开源的、具有容错性和高度可扩展大型和小型 Linux集群资源管理和作业调度系统。超级计算系统可利用 Slurm 进行资源和作业管理&#xff0c;以避免相互干扰&#xff0c;提高运行效率。所有需运行…

charles

charles中文名叫青花瓷&#xff0c;是一款基于HTTP协议的代理服务器。通过电脑或浏览器的代理来截取请求和请求结果&#xff0c;达到抓包并进行数据分析的目的。charles可以截取HTTP和HTTPS的网络封包&#xff0c;支持重发网络请求、修改网络请求参数、流量控制等场景 安装 由…

LeetCode刷题(python版)——Topic65.有效数字

一、题设 有效数字&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 一个 小数 或者 整数&#xff08;可选&#xff09;一个 e 或 E &#xff0c;后面跟着一个 整数 小数&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; &#xff08;可选&…

Vue:搭建前端项目-----我给你打个样

如果文章对你有帮助欢迎【关注❤️❤️❤️点赞&#x1f44d;&#x1f44d;&#x1f44d;收藏⭐⭐⭐】一键三连&#xff01;一起努力&#xff01; 家人们好久不见&#xff0c;这次我们继续上干货&#xff0c;我们来介绍一下如何使用vue搭建一个前端项目&#xff1b; 在这里我会…

pytest fixture 中的使用包信scope skip conftest.py 和参数化等功能使用

pytest中所谓的夹具&#xff1a; fixture scope参数详解&#xff1a; scope&#xff1a; 表示fixture共享夹具的范围&#xff0c;有以下五个范围 function 功能&#xff1a; 在函数或方法运行时执行fixture函数的功能 默认作用域 class 功能&#xff1a;在类运行时调用一次。…

Mindspore网络构建

网络构建 神经网络模型是由神经网络层和Tensor操作构成的&#xff0c;mindspore.nn提供了常见神经网络层的实现&#xff0c;在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff0c;也是网络的基本单元。一个神经网络模型表示为一个Cell&#xff0c;它由不同的子Cell…

【python】常见的正则表达式用法;匹配字符串

本文仅仅展现了python正则表达式中的一小部分内容&#xff0c;但是包含了实际应用中非常被频繁使用的例子&#xff0c;本文重在举例&#xff0c;即不需要相关语法知识就能够会用~ 目录re.match()re.findall()匹配两个字符串之间的字符串并返回匹配某字符串之前/之后的所有字符串…

matlab使用NCL提供的colormap

一、自带的colormap matlab默认提供了几个基础的colormap&#xff0c;比如常见的jet和parula matlab里调用colormap的命令是 colormap(jet) jet到底代表什么呢。 可以看到其表示n*3的矩阵&#xff0c;数字介于0-1之间&#xff0c;分别代表红绿蓝。 二、m_map的colormap m_…

数据库系统概论第六章(关系数据理论)知识点总结(2)—— 码的概念总结

本专栏收录了数据库的知识点&#xff0c;而从本文起&#xff0c;将讲述有关于关系数据理论中的第一范式、第二范式、第三范式以及BC范式有关知识点&#xff0c;提供给有需要的小伙伴进行学习&#xff0c;本专栏地址可以戳下面链接查看 &#x1f388; 数据库知识点总结&#xff…

今年的数据安全风险点是什么?看数据

2022年已接近尾声&#xff0c;降低数据安全风险&#xff0c;加强防御能力依然是政企发展中的重点和目标。 2022年全球网络安全、数据安全事件频发&#xff0c;钓鱼、勒索、欺诈等复合攻击层出不穷&#xff0c;这里对2022年部分时间段的数据进行统计&#xff0c;并且这一趋势很…

基于微信小程序的高校餐厅食品留样管理系统设计与实现-计算机毕业设计源码+LW文档

小程序开发说明 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Mav…

图形学-几何-曲线与曲面

1.什么是曲线 我们使用一系列的点去定义一条曲线。这些控制点描述了曲线的一些性质。最常见的曲线叫做贝塞尔曲线&#xff08;Bzier Curve&#xff09;。 1.1 贝塞尔的画法 在三个点的情况下。在二维情况下&#xff0c;使用三个控制点画出的贝塞尔曲线称为二次贝塞尔曲线&am…

第三节.常用Linux命令—文件和目录

第三节.常用Linux命令—文件和目录 1.查看目录内容:ls 1).功能: 列出目录的内容 2).常用选项: 参数含义-a显示指定目录下所有子目录和文件&#xff0c;包含隐藏文件(以 开头的文件)-l以列表形式显示文件的详细信息-h配合 -l 以人性化的方式显示文件大小 3).计算机中文件大小…

【数据结构初阶】(栈和队列)图文详解四道oj+三道easy概念题

你也会感到孤独吗&#xff1f; 文章目录一、队列和栈的接口二、有效的括号2.1 思路呈现2.2 代码呈现细节讲解三、用队列实现栈3.1 思路呈现3.2 代码呈现细节讲解3.3 总结四、用栈实现队列4.1 思路呈现4.2 代码呈现细节讲解4.3 总结五、设计循环队列5.1 思路呈现5.2 数组5.3 链表…

海思3559AV100 gdb+gdbserver调试·基础篇

问题描述 随着程序越来越复杂&#xff0c;单靠输出信息调试程序已然是不合适的&#xff0c;所以必须考虑使用gdb调试&#xff0c;由于板子上比较难加载代码&#xff0c;所以最合适的办法应该是gdbgdbserver远程调试&#xff0c;这样我们可以清楚地看到程序的运行信息。gdb官方…

第三章 组合逻辑电路

思维导图 笔记 组合逻辑电路 电路在任意时刻的输出状态仅由该时刻的输入信号决定&#xff0c;与电路在此信号输入之前的状态无关。 组合逻辑电路的分析 分析步骤 ①根据逻辑电路图&#xff0c;写出输出逻辑函数的表达式 ②根据逻辑表达式&#xff0c;列出真值表 ③由真值表或…