前言:
说在最前,试分析了Object以及String 这些我们常使用的对象,发现Jdk 的开发人员在写一些方法的时候,想到的方便更加具体,也有些地方真的
有些看不懂,估计还是学的浅,但还是要尝试着去分析,毕竟没有什么事情是生来就会的,我们的试着去解决它,今天还是从我们的一个Integer出发,
也是我们最常用的一个类,int 基本类型的包装类
分别定义了Int 这个四个字节表示的数的能存储最大的值与最小的值 分别用十六进制表示
@Native public static final int MIN_VALUE = 0x80000000; /** * A constant holding the maximum value an {@code int} can * have, 2<sup>31</sup>-1. */ @Native public static final int MAX_VALUE = 0x7fffffff;
//包装类的类型是一个基于int 的基本类型
public static final Class<Integer> TYPE = (Class<Integer>) Class.getPrimitiveClass("int");
//将一个整数i 通过指定的基数 radix 也就是进制,比如10表示就是十进制 转换后是指定的字符串
举个例子
System.out.println(Integer.toString(10,2));//将10这个整数转换为2进制 结果:1010
public static String toString(int i, int radix) {
//默认的进制 if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX) radix = 10; /* Use the faster version */ if (radix == 10) { return toString(i); } //存放4个字节的二进制数组 char buf[] = new char[33];
//判断是否是负数 boolean negative = (i < 0); int charPos = 32; //正数则取负值 if (!negative) { i = -i; } //循环开始,进制转换 二进制 对2取余 十六进制对16取余数 while (i <= -radix) { buf[charPos--] = digits[-(i % radix)]; i = i / radix; } buf[charPos] = digits[-i]; if (negative) { buf[--charPos] = '-'; } return new String(buf, charPos, (33 - charPos)); }
这里如果有疑惑请参考:https://baijiahao.baidu.com/s?id=1621423277747819472&wfr=spider&for=pc