码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JavaSE——包装类、装箱与拆箱


    目录

    一、基本概念

    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方法也已经给我们重写好了,不比我们再写

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

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

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

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

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

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

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

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

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

    1. // 自动装箱
    2. Integer x=100;
    3. // 自动拆箱
    4. int y =x;

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

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

    1. Integer a=128;
    2. Integer b=128;
    3. System.out.println(a==b);
    4. Integer x=127;
    5. Integer y = 127;
    6. System.out.println(x==y);

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

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

    三、Integer常用方法

        3.1 手动拆箱(过时)

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

     

         3.2 静态方法  int parseInt(String)

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

       使用情景:

     

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

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

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

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

     

    下面这段代码也能看懂了

     

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

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

     

    四、 String int Integer 类型互换

     

  • 相关阅读:
    AD使用技巧2
    面试必问的HashCode技术内幕
    Java文件上传及下载
    百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览
    如何一键清除文件目录下所有的node_modules
    Java:学习Java的最好方法
    UE获取当前鼠标点击位置坐标
    ELAS库计算双目视差图
    详解 Redis 中 big keys 发现和解决
    推进生态社会化分工 与伙伴共担未来 数商云受邀出席京东科技合作伙伴论坛
  • 原文地址:https://blog.csdn.net/weixin_51351637/article/details/127856682
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号