JDK1.5新特性之---自动装箱/拆箱
来源:互联网 发布:网络错误691怎么解决 编辑:程序博客网 时间:2024/06/04 18:26
JDK1.5新特性之—自动装箱/拆箱
2017年12月16日 21:35:47
自动装箱:指开发人员可以把一个基本数据类型直接赋给对应的包装类。 自动拆箱:指开发人员可以把一个包装类对象直接赋给对应的基本数据类型。
基本数据类型包装类
Example:
public class Demo5 { public static void main(String[] args) { String str = "12"; //字符串转换成int类型数据。 可以把字符串转换成对应的数字 int i = Integer.parseInt(str); System.out.println(i+1); //把数字转换成字符串 System.out.println("把整数转换成对应 的字符串:"+Integer.toString(i)); //把整数转换成对应的进制形式 System.out.println("10的二进制:"+ Integer.toBinaryString(10)); System.out.println("10的二进制:"+ Integer.toBinaryString(10)); System.out.println("10的十六进制:"+ Integer.toHexString(10)); //可以把字符串当成对应的进行数据帮你转换 String data = "10"; int a = Integer.parseInt(data, 2); System.out.println("a="+a); //集合: 集合是可以存储任意对象类型数据的容器。 ArrayList list = new ArrayList(); list.add(1); list.add(2); list.add(3); //自动装箱: 自动把java的基本数据类型数据转换成对象类型数据。 int temp = 10; //基本数据类型 Integer b =temp; //把a存储的值赋予给b变量。 //自动拆箱: 把引用类型的数据转换成基本类型的数据 Integer c = new Integer(13); int d = c; // System.out.println(d); //引用的数据类型 Integer e = 127; Integer f = 127; System.out.println("同一个对象吗?"+(e==f)); // ture }}
注意:
Integer类内部维护 了缓冲数组,该缓冲数组存储的-128~127
这些数据在一个数组中。如果你获取的数据是落入到这个范围之内的,那么就直接从该缓冲区中获取对应的数据。
看源码:
/** * Cache to support the object identity semantics of autoboxing for values between * -128 and 127 (inclusive) as required by JLS. * * The cache is initialized on first usage. The size of the cache * may be controlled by the {@code -XX:AutoBoxCacheMax=<size>} option. * During VM initialization, java.lang.Integer.IntegerCache.high property * may be set and saved in the private system properties in the * sun.misc.VM class. */ private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[]; static { // high value may be configured by property int h = 127; String integerCacheHighPropValue = sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high"); if (integerCacheHighPropValue != null) { try { int i = parseInt(integerCacheHighPropValue); i = Math.max(i, 127); // Maximum array size is Integer.MAX_VALUE h = Math.min(i, Integer.MAX_VALUE - (-low) -1); } catch( NumberFormatException nfe) { // If the property cannot be parsed into an int, ignore it. } } high = h; cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k < cache.length; k++) cache[k] = new Integer(j++); // range [-128, 127] must be interned (JLS7 5.1.7) assert IntegerCache.high >= 127; } private IntegerCache() {} }
阅读全文
0 0
- JDK1.5新特性之---自动装箱/拆箱
- jdk1.5新特性之自动装箱与拆箱
- jdk1.5新特性:自动装箱
- jdk1.5新特性4之自动装箱和自动拆箱与享元模式
- 谈谈JDK1.5新特性之Integer与int的自动装箱和自动拆箱
- JDK1.5新特性之自动装箱与自动拆箱
- jdk1.5新特性之自动装箱与自动拆箱
- Java学习笔记之JDK1.5新特性(四):自动装箱和自动拆箱
- JDK1.5新特性--自动装箱与拆箱
- 自动装箱的疑惑(jdk1.5中自动装/折箱的新特性)
- 黑马程序员-jdk1.5新特性--基本数据类型的自动拆箱与装箱
- [Java5新特性]自动装箱/拆箱
- JDK1.5 之 自动拆箱装箱
- JAVA JDK1.5新特性<静态带入、可变参数、增强For循环、自动装箱及自动拆箱>
- JDK1.5之 新特性
- JDK1.5之 新特性
- JDK 5.0新特性之自动装箱自动拆箱
- java JDK1.5新特性(一) [静态导入] [可变参数] [增强for] [自动装箱拆箱] [枚举]
- oracle sqlplus 创建触发器 无法终止
- 线程--十人过山洞
- 深度学习: 从 Selective Search 到 RPN 再到 FPN
- Eclipse C++下OpenCV工程项目的模板建立
- Excel在统计分析中的应用—第十章—方差分析-方差分析表
- JDK1.5新特性之---自动装箱/拆箱
- Ubuntu下编译android所需ffmpeg的so库
- C语言例题
- 正则表达式
- woa鲸鱼优化算法matlab源码
- 持续更新-爬虫网上练习记录
- Tomcat优化详解
- Boostrap学习笔记
- Android主题