名称 | 字节 | 取值范围 | 默认值 |
byte | 1个字节 | -128 ~127 | 0 |
short | 2个字节 | -32,768 ~ 32,767 | 0 |
int | 4个字节 | -231 ~ 231-1 SE8以及以后,能够用int来表示无符号32位数 0~232-1 |
0 |
long | 8个字节 | -263 ~ 263-1
SE8以及以后,能够用long来表示无符号64位数
0~264-1
|
0L |
float | 4个字节 | 单精度 32-bit IEEE 754 浮点数 | 0.0f |
double | 8个字节 | 双精度 64-bit IEEE 754 浮点数 | 0.0d |
char | 2个字节 | 16位 Unicode 字符 '\u0000' (or 0) ~ '\uffff' (65,535 包括) |
'\u0000' |
boolean | 字节大小并未规定,由实现决定 虚拟机内部没有支持boolean的指令 boolean编译以后使用虚拟机中的int代替 oracle公司的虚拟机实现中boolean数组编码为byte数组 那就是一个boolean 一个字节 8位 |
true 或者 false | false |
另外为了方便还提供了 java.lang.String,他是不可变的,也不属于基本数据类型,默认值为 null |
为了支持大数据的计算,还提供了BigInteger 和 BigDecimal |
因此说经常使用到的,基础性的数据类型有: |
8种基本数据类型 byte short int long float double char boolean |
8种基本数据类型对应的包装类 Byte Short Integer Long Float Double Character Boolean |
java.lang.String |
java.math.BigInteger 和 java.math.BigDecimal |
Number是对"数值"这两个字的概念在Java中的抽象 Byte、Short、Integer、Long、Double、Float、BigDecimal、BigInteger 类的超类 |
规定了做为数值的协议 就是提供xxxValue方法以得到各类不一样的数据类型的值 在类型转换之间可能会损失精度 |
![]() |
除了byte和short 上图方法列表中的其余的方法 是必须提供的 ![]() |
计算机中整数是以二进制补码形式存放的 Integer和Long提供了bitCount 方法 用于获取二进制补码表示形式的 1 位的数量 |
数据为二进制表示形式,翻转就是彻底的颠倒过来 ,形象点说就是旋转180度
最后一位变成了最早一位
Integer和Long提供了reverse 方法进行翻转
|
按照字节翻转,reverse是按照位翻转,最后一位变成最早一位
reverseBytes 是按照字节翻转,也就是最后一个字节变成了最早的一个字节
|
循环移位就是循环移动位置 位置就这么多,循环移动就是从一头到另外一头 移位负距离等同于在另外一头移位 ![]() |
rotateLeft 循环左移 对应上面一个图,从最左边(最高位)移出,从右边最低位在进入 |
rotateRight
循环右移 对应下面一个图,从最右边(最低位)移出,从左边最高位在进入
|
Integer和Long提供了循环右移和循环左移 |
divideUnsigned(dividend, divisor) 求商,也就是取整 第一个参数除以第二个参数的商 remainderUnsigned(dividend,divisor)求余 第一个参数 除以 第二个参数的余数 |
Integer和Long 有提供 |
他的本意是肯定具备指定名称的系统属性的整数值
而不是把一个字符串转换为包装类,因此必定不要想固然的把它当作解析
好比 getLong
他首先会System.getProperty
若是你传递的字符串根本就不是一个系统属性的名称,则根本就不会进行下去
并且,第二个值也不是基数,也就是咱们说的进制,他是若是前面为null的话,给出的默认值
|
![]() |
测试一下![]() |
接受经过如下语法给出的十进制、十六进制和八进制数字
Sign是可选的
|
Sign DecimalNumeral
Sign 0x HexDigits
Sign 0X HexDigits
Sign # HexDigits
Sign 0 OctalDigits
Sign:
-
+
|
decode 用于将字符串解码为包装类对象 不依赖于对象,因此是静态方法 valueOf也能够将字符串或者基本类型包装为对象 |
decode 不须要指定进制,能够识别前缀符号 0x 0X # 0
valueOf则不能够识别前缀,要么指定基数,要么就是默认十进制,并且他的参数只能是指定基础的有效字符,不能有前缀符号
|