Java 基础类型 —— Integer

1 Integer 类方法

  • 返回类型标 * 的是重点方法

1.1 toXXXString —— 将 int 转成不同进制的 String 形式

返回类型方法名描述
StringtoString()toString(value)
* static StringtoString(int i)有意思,这和 i+"" 区别在哪呢?内部调用 getChar()
* static StringtoString(int i, int radix)将 int 值转成 对应进制的 String 形式
static StringtoUnsignedString(int i)toUnsignedString(int i, 10)
static StringtoUnsignedString(int i, int radix)Long.toUnsignedString(int i, int radix)
static StringtoHexString(int i)toUnsignedString0(i, 4)
static StringtoOctalString(int i)toUnsignedString0(i, 3)
static StringtoBinaryString(int i)toUnsignedString0(i, 1)
* static StringtoUnsignedString0(int val, int shift)内部是全是通过 val & mask,val >>>= shift,所以仅仅是通过 mask 取到每一部分的值对应的 radix,所以是无符号的
* static intformatUnsignedInt(…)toUnsignedString0 内部调用它,进行的掩模计算

1.2 parseInt(…) —— 将各种格式的 String 转成 int

返回类型方法名描述
static intparseInt(String s)parseInt(s,10)
* static intparseInt(String s, int radix)根据对应的进制,将 s 解析成对应的 int 值,用负数算(有意思)
static intparseUnsignedInt(String s)parseUnsignedInt(s, 10)
* static intparseUnsignedInt(String s, int radix)内部调用 Long.parseLong(s,radix)

1.3 valueOf —— 将 String、int 转成 Integer

返回类型方法名描述
static IntegervalueOf(String s)Integer.valueOf(parseInt(s, 10))
static IntegervalueOf(String s, int radix)Integer.valueOf(parseInt(s,radix))
static IntegervalueOf(int i)内部走Cache,通过 java.lang.Integer.IntegerCache.high 设置 Cache 的最大范围,[-128,max]

1.4 getInteger —— 获取系统参数值,并转换为 Integer

返回类型方法名描述
static IntegergetInteger(String nm)getInteger(nm, null)
static IntegergetInteger(String nm, int val)内部调用 getInteger(nm, null)
static IntegergetInteger(String nm, Integer val)获取系统 property 参数值,v = System.getProperty(nm),如果为 null,返回 val 值

1.5 compare —— int 值比较

返回类型方法名描述
intcompareTo(Integer anotherInteger)compare(this.value, anotherInteger.value)
static intcompare(int x, int y)(x < y) ? -1 : ((x == y) ? 0 : 1)
static intcompareUnsigned(int x, int y)compare(x + MIN_VALUE, y + MIN_VALUE)

1.6 unsigned int 的除/取余

返回类型方法名描述
static intdivideUnsigned(int dividend, int divisor)(int)(toUnsignedLong(dividend) / toUnsignedLong(divisor))
static intremainderUnsigned(int dividend, int divisor)(int)(toUnsignedLong(dividend) % toUnsignedLong(divisor));

1.7 取 int 值最高/低位 1 对应的 值

返回类型方法名描述
* static inthighestOneBit(int i)最高位取最高 1 及后面全置0的值,代码解析
* static intlowestOneBit(int i)i & -i:精辟

1.8 LeadingZeros/TrailingZeros/countBit

返回类型方法名描述
* static intnumberOfLeadingZeros(int i)i 对应 2 进制的开头 0 的个数
* static intnumberOfTrailingZeros(int i)i 对应 2 进制的末尾 0 的个数
* static intbitCount(int i)i 对应 2 进制中 1 的个数

1.9 int 对应二进制的反转

返回类型方法名描述
* static introtateLeft(int i, int distance)(i << distance) | (i >>> -distance)
* static introtateRight(int i, int distance)(i >>> distance) | (i << -distance)
* static intreverse(int i)二进制按位反转
* static intreverseBytes(int i)二进制按byte反转
00000000_00000000_01001101_00011111 -> 原始
11111000_10110010_00000000_00000000 -> 按位反转
00011111_01001101_00000000_00000000 -> 按字节反转

1.10 sinum/sum/max/min

返回类型方法名描述
static intsignum(int i)负数返回 -1,0 返回 0,正数返回 1
static intsum(int a, int b)a + b
static intmax(int a, int b)Math.max(a, b)
static intmin(int a, int b)Math.min(a, b)

1.11 decode/hashCode/stringSize/toUnsignedLong

返回类型方法名描述
static longtoUnsignedLong(i)((long) x) & 0xffffffffL,高32都是0,低32是 int 的值,所以肯定是正
static intstringSize(int x)x 的位数,x 必须为非负
inthashCode()Integer.hashCode(value)
static inthashCode(int value)value
* static Integerdecode(String nm)根据 nm 判断对应的进制数,根据 nm 判断对应的进制数,再调用 Integer.valueOf(nm.substring(index), radix)

1.12 构造函数 Integer(String)

  • 内部调用 parseInt(s,10)
  • 如果确定 int 很小,推荐使用 Integer.valueOf(String):这样可以走 cache

2 重点方法解析

  • 留待以后补充

参考

jdk1.8_171

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值