Java源码阅读-Integer
来源:互联网 发布:ifconfig 设置mac 编辑:程序博客网 时间:2024/06/07 02:16
/** * A constant holding the minimum value an {@code int} can * have, -2<sup>31</sup>. */ public static final int MIN_VALUE = 0x80000000; // 最小值,-2的31次方 /** * A constant holding the maximum value an {@code int} can * have, 2<sup>31</sup>-1. */ public static final int MAX_VALUE = 0x7fffffff; // 最大值,2的31次方减1
valueOf方法
/** * Returns an {@code Integer} instance representing the specified * {@code int} value. If a new {@code Integer} instance is not * required, this method should generally be used in preference to * the constructor {@link #Integer(int)}, as this method is likely * to yield significantly better space and time performance by * caching frequently requested values. * * This method will always cache values in the range -128 to 127, * inclusive, and may cache other values outside of this range. * * @param i an {@code int} value. * @return an {@code Integer} instance representing {@code i}. * @since 1.5 */ public static Integer valueOf(int i) { assert IntegerCache.high >= 127; if (i >= IntegerCache.low && i <= IntegerCache.high) // 如果在最大值和最小值之间,则使用缓存IntegerCache return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
/** * 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 -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 { // 静态代码块,Integer类被加载时则创建-128~127这些值放到数组中作为缓存 // high value may be configured by property int h = 127; String integerCacheHighPropValue = sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high"); if (integerCacheHighPropValue != null) { 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); } high = h; cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k < cache.length; k++) cache[k] = new Integer(j++); } private IntegerCache() {} }
阅读全文
0 0
- java Integer源码阅读
- Java源码阅读-Integer
- java 源码 Integer
- 【Java源码】Integer类
- java源码-Integer
- Java-Integer源码分析
- Java Integer源码解读
- java源码阅读
- 怎样阅读JAVA源码
- 如何阅读Java源码
- 如何阅读JAVA源码
- 如何阅读Java源码
- java 数据结构. 源码阅读
- java源码阅读心得
- 如何阅读Java源码
- 如何阅读Java源码
- JAVA源码阅读--String
- java阅读源码工具
- gcc/g++中的pic与pie
- ubuntu 系统adduser 的时候添加sudo 的权限
- 微信公众号消息加解密方式用于接收用户发来的消息并做回应
- 笨办法学 Python · 续 练习 4:处理命令行参数
- JavaScript调试问题
- Java源码阅读-Integer
- 也谈前后端联调
- windows下操作ipynb(笔记)
- 马士兵Servlet&JSP(1.Servlet)源代码
- in 和 exists 执行区别
- CUDA Samples: dot product(使用零拷贝内存)
- 常用的工具
- 01背包问题和完全背包问题
- Json的解析--Json-lib、fastjosn、jackjson、gson