int的包装类
作为包装类,给数字装备了各种操作方法
代码版本java8
取值范围
Java int型占位4个byte 最小值-231 最大值231-1
1 | public static final int MIN_VALUE = 0x80000000; |
位操作
找最高位的1
右移1位并进行或操作,那么最高位1传递给了低位,现在最位和下一位都是1
再右移两位或操作,那么最高位和接下来三位都是1
以此类推,最高的1会将所有低位都置为1,接下来只需减掉所有低位即可
1 | public static int highestOneBit(int i) { |
找最低位的1
负值相当于求反加1,最低位的1刚好是进行进位的,只要进行与操作即可
1 | public static int lowestOneBit(int i) { |
装拆箱
装拆箱发生在编译阶段
ValueOf装箱
valueOf并不总是创建新的对象,维护缓存,[-128, 127]之间都是返回缓存
JVM参数-XX:AutoBoxCacheMax
可以改变缓存范围,只针对Integer类型生效
1 | public static Integer valueOf(int i) { |
valueOf就是装箱的本质
1 | Integer a = 100, b = 100; |
intValue拆箱
intValue方法是拆箱的本质
1 | public int intValue() { |
Integer和int比较时先拆箱再比较
1 | Integer a = 200; |
同时Interger还提供其他类型的强转方法
1 | public short shortValue() { |
一分也是爱~
版权声明
This site by Linest is licensed under a Creative Commons BY-NC-ND 4.0 International License.
由Linest创作并维护的博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。