Java包装类

包装类

  1. 针对八种基本数据而理性相应的引用类型---包装类
  2. 有了类的特点,就可以调用类中的方法
基本数据类型 包装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double



包装类和基本数据类型的转换

基本数据类型和包装类的相互转换

  1. jdk5前的手动装箱和拆箱方式,装箱:基本类型--->包装类型,反之,拆箱
  2. jdk5(包含jdk5)以后的自动装箱和拆箱方式
  3. 自动装箱底层调用的是valueOf方法,比如Integer.valueOf()
java 复制代码
package com.shedu.wrapper_;


public class Integer01 {
    public static void main(String[] args) {
        //演示int《--》Integer的装箱和拆箱
        //jdk5前是手动装箱和拆箱
        //手动装箱
        int n1 = 100;
        Integer integer = new Integer(n1);
        Integer integer1 = Integer.valueOf(n1);

        //手动拆箱
        //Integer ------》int
        int i = integer.intValue();


        //jdk5后,就可以自动装箱和自动拆箱
        int n2 = 200;
        //自动装箱 int---->Integer
        Integer integer2 = n2;//底层使用的是:integer.valueOf(n2)

        //自动拆箱Integer------>int
        int n3= integer2;//底层使用的仍然是intValue()方法
    }
}

包装类型和String类型的相互转换

java 复制代码
package com.shedu.wrapper_;


public class WrapperVSString {
    public static void main(String[] args) {
        //包装类(Integer)-->String
        Integer i = 100;//自动装箱
        //方式1
        String s1 = i+"";
        //方式2
        String s2 = i.toString();
        //方式3
        String s3 = String.valueOf(i);



        //String --> 包装类(Integer)
        String s4 = "123";
        Integer i1 = Integer.parseInt(s4); // 使用到自动装箱
        Integer i2 = new Integer(s4);

    }
}

包装类的常用方法

练习

java 复制代码
package com.shedu.wrapper_;
public class WrapperExercise02 {
    public static void main(String[] args) {
        methods();
    }

    public static void methods() {
        Integer i = new Integer(1);
        Integer j = new Integer(1);
        System.out.println(i == j);//false


        /*
        源码:
        1. 如果i在IntegerCache.low(-128)~IntegerCache.high(127)范围内,之际从数组中返回
        2.如果不在这个范围内,就直接new Integer()
        public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }
         */
        //当范围在-126 ------127之间时,直接返回值
        Integer m = 1;//底层调用Integer.valueOf();
        Integer n = 1;//底层调用Integer.valueOf();
        System.out.println(m == n); //true


        //当范围在-126 ------127之间时,直接返回值
        //否则,就new Integer();
        Integer x = 128;
        Integer y = 128;
        System.out.println(x == y);//false
        //当有基本数据类型进行比较,比较的就是数值
        int n11 = 128;
        System.out.println(n11 == x);//true
    }
}
相关推荐
Hello-FPGA5 分钟前
QT 初体验
开发语言·qt
云惠科技(SEO)9 分钟前
泛目录站群技术架构演进观察:2025年PHP+Java混合方案实战笔记
java·人工智能·搜索引擎
Cao12345678932130 分钟前
扫雷-C语言版
c语言·开发语言
天堂的恶魔94641 分钟前
QT —— 信号和槽(槽函数)
开发语言·qt
牛马baby1 小时前
Springboot 自动装配原理是什么?SPI 原理又是什么?
java·spring boot·后端
水w1 小时前
【Python爬虫】详细入门指南
开发语言·爬虫·python·scrapy·beautifulsoup
小小深1 小时前
了解JVM
java·jvm
Sunlight_7771 小时前
第五章 SQLite数据库:1、SQLite 基础语法及使用案例
java·linux·服务器·jvm·数据库·tcp/ip·sqlite
JhonKI1 小时前
【从零实现高并发内存池】内存池整体框架设计 及 thread cache实现
java·redis·缓存
何似在人间5751 小时前
SpringAI+DeepSeek大模型应用开发——4 对话机器人
java·机器人·大模型应用开发·spring ai