Java的基本数据类型有
byte,short,int,long,float,double,boolean,char.
对应的包装类是 Byte,Short,Integer,Long,Float,Double,Boolean,Character.
包装类型常见的静态方法和常量,以Byte为例
Byte.Size 获得基本数据类型的位数,结果是8位
Byte.MIN_VALUE Byte.MAX_VALUE获取基本数据类型的最小和最大数值,结果是-128和127,最大值=|最小值|-1,因为0存在
Byte.decode() 接受字符串,字符串可是是十进制,八进制,十六进制的字符串,返回结果是Byte包装类,通常使用Byte.vauleOf()返回包装类,有三个重载,其中的一个重载radix代表进制。
Byte.parseByte() 返回结果是byte基本类型,有两个重载。
额外的静态方法,以Integer为例,包含了进制显示,进制转换
Integer.bitCount() 返回二进制补码,1的数量
Integer.toBinaryString() 返回一个字符串,是整数参数转换后的无符号二进制数值,补码,Integer.octalString(),Integer.hexString()分别返回8进制无符号数和16进制无符号数,如果整数是负数,那么返回的结果是补码,因为正数的原码和补码相反
Integer.highestOneBit() 返回整数补码二进制最右边的1代表的整数,Integer.lowestOneBit()返回整数补码二进制最左边的1代表的整数,返回的数是2的倍数,1除外。
Integer.reverse() 返回补码反转后的数值
Integer.signum() 判断整数是负数返回-1,0返回0,正数返回1.
数值的比较
Integer.max(a,b) Integer.min() Integer.compare(a,b) 返回对应的结果,如果是浮点数,是近似比较,内部调用的是new Float(f1).compareTo(new Float(f2))
浮点数特有的静态常量
Float.POSITIVE_INFINITY,Float.NEGATIVE_INFINITY 分别是正无穷大 Float.intBitsToFloat(0x7f800000),和负无穷大Float.intBitsToFloat(0xff800000)。
Float.NaN一个非数值,返回 Float.intBitsToFloat(0x7fc00000)。
也有对应的静态方法,判断一个浮点数是否是上面的数
在实例对象中,通常有XXXVaule() 返回的是转换类型后的数值.
类型转换
在Java中规定的字面量整数是int基本数据类型,浮点数字面量是double基本数据类型。
类型转换造成的精度缺少问题,计算机底层是用二进制补码存储的,精度缺少,是截取地位,再通过符合类型设置。
比如byte a=(byte)129,a=-127.
129的补码是1000,0001;而转换成byte类型,只需要低8位,而1000,0001的8位补码转换成为源码是-127
自动类型转换,a的位数大于b的位数,那么a类型转换成b类型,需要手动转换,b类型转换成a类型不需要,及隐式类型转换。