初学者对自动装箱和自动拆箱的认识(IntegerCache的缓存数组)
来源:互联网 发布:苏州迈科网络 编辑:程序博客网 时间:2024/05/16 05:23
自己对自动装箱和拆箱的一些认识,希望对大家有所帮助,不足和错误之处还望之处。
自动装箱,自动拆箱调用的方法:
自动装箱调用的方法: java源码如下:
private static class IntegerCache{ static final Integer cache[]; static{ 对-128到127对象的创建 }}public static Integer valueOf(int i){ if(i <= IntegerCache.high && i >= IntegerCache.low) return IntegerCache.chache[i - IntegerCache.low]; return new Integer(i);}
Integer类中有个IntegerCache的静态内部类(类级内部类),里面对一些常用的int数字,准确的说是-128到127之间的数字进行Integer对象的创建,并放在一个静态缓存数组中(Integer cache[])。
Integer i = 100; 补全的实际代码为: Integer i = Integer.valueOf(100);由于100在缓存的数值范围内(-128——127)所以,并没有创建新的Integer对象,而是引用IntegerCache内部的Integer cache []数组中的对象(静态数据,该类对象所共有)。
Integer j = 200; 补全的实际代码为:Integer i = Integer.valueOf(100);但是其调用的确实new Integer(200);构造器进行对象创建。
举例:
public static void main(String[] args) { Integer a=100; Integer b=100; Integer c=200; Integer d=200; System.out.println(a==b); //1 System.out.println(a==100); //2 System.out.println(c==d); //3 System.out.println(c==200); //4 }
结果是,true true false true
拆箱调用的是 java源码如下:
private final int value;public Integer(int value){ this.value = value;}public int intValue(){ return value;}
阅读全文
0 0
- 初学者对自动装箱和自动拆箱的认识(IntegerCache的缓存数组)
- JavA的自动装箱和拆箱
- Java的自动拆箱和装箱
- java的自动装箱和拆箱
- Java自动装箱和自动拆箱的陷阱
- java的自动装箱和自动拆箱
- Java 自动装箱和自动拆箱注意的问题
- JavaSE的自动装箱和自动拆箱
- Java的自动装箱和自动拆箱
- 自动装箱和自动拆箱的细节
- java的自动装箱自动拆箱
- 对数据类型的理解及自动装箱拆箱等
- JAVA自动装箱拆箱以及装箱时的缓存问题
- 自动装箱和拆箱 枚举 反射 数组反射的应用。ArrayList和HashSet
- java基础数据类型自动装箱的缓存
- java基本类型、对应的包装类型(自动拆箱和自动装箱)
- Java的自动装箱和自动卸载
- java的自动装箱和拆箱是什么样子的?
- 深度学习DeepLearning.ai系列课程学习总结:9.深度学习基础实践理论
- jQuery学习笔记(三)js中的动画效果
- Error:Unable to get the CMake version located at: H:\sdk\cmake\bin Consult IDE log for more details
- VGG_VOC0712_SSD_300x300_deploy
- 三次握手和四次挥手
- 初学者对自动装箱和自动拆箱的认识(IntegerCache的缓存数组)
- URAL 1056 Computer Net (图论+bfs)
- Golang time.Parse和time.Format的时区问题
- python 多线程爬取考拉商品评论
- C语言写入混淆字节的方法
- python操作xls、xlsx格式Excel笔记
- JAVASE之权限修饰内部类
- 416. Partition Equal Subset Sum
- Leetcode7. Reverse Integer