java中包装类详解--带你看源码

本文详细介绍了Java中的包装类,特别是Integer类的源码分析,包括数值型包装类的父类Number,以及Integer的缓存机制。当数值在[-128, 127]范围内时,Integer对象会存储在常量池中,以提高程序运行速度。此外,还探讨了构造方法和compareTo()方法。最后,提到了Double包装类的学习要点。" 101562657,9072434,普通对话框:Dialog详解,"['前端开发', 'UI设计', '人机交互']
摘要由CSDN通过智能技术生成

java中包装类详解–带你看源码


深入学习次啊能刻到骨子里—但是如果年代久远的话还是会忘,只不过忘得会慢一些;

弱弱的问一句,程序员会的老年痴呆吗?
欢迎在评论区回答—

为什么会有包装类???有了基本数据类型不就行了??

我们都说java是一门面向对象的语言,万物皆对象,将八种基本数据类型
抽象为类,于是乎就有了基本数据类型的对应的包装类;
在这里插入图片描述其中数值型的父类为Number,Number父类为Object
字符型和布尔型的父类为 Object

每一中包装类都为final修饰–以Integer为例
在这里插入图片描述说明包装类没有子类,不可被继承

话不都说,先看代码—Integer类


public class test {
   
    public static void main(String[] args) {
   
//       Integer i =new Integer(2);//此种写法已经舍弃了,直接写为下面的形式
//       Integer I2=new Integer(2);
//        System.out.println(i.equals(I2));
//        System.out.println(i==I2);
        Integer num1=12;
            Integer num2=12;
        System.out.println(num1==num2);//true
        System.out.println(num1.equals(num2));//true
        System.out.println(num1.compareTo(num2));//0

        int a=12;
        int b=12;
        System.out.println(a==num1);//true
    }
}

细心的可能发现基本数据类型和对象a==num1结果 为true
我们反编译一下会发现程序内部自动拆箱操作,

在这里插入图片描述
我们来看一下valueOf 方法的源码

在这里插入图片描述
这里面提到了IntegerCache.cache[i + (-IntegerCache.low)]再次查看

private static class IntegerCache {
   
        static final int low = -128;
        static final int high;
        static final Integer[] cache;
        static Integer[] archivedCache;

        static {
   
            // high value may be configured by property
            int h = 127;
            String integerCacheHighPropValue =
                VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
            if (integerCacheHighPropValue != null) {
   
                try {
   
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeMartain

祝:生活蒸蒸日上!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值