所有的整数类型以二进制数字位的变化及宽度来表示。
所有的整数类型都是有符号的整数,这意味着他们即能表示正数,也能表示负数。
java使用2的补码来表示负数,通过将其对应的二进制代码取反,然后结果加1。
java的数据类型及位数
逻辑类 Boolean
文本类 char
整数类 byte short int long
浮点数 double float
两类 : 数值型(numeric type)
布尔型(Boolean type)
复合数据类型(reference type)
三类: 类类型(class type)
接口类型(interface type)
数组类型(Array type)
1、Boolean
2、char和string
一个char代表16-bit无符号字符。
string是一个类,它被用来表示字符序列
3、整数类型,byte short int long
byte 8bits -27。。。。。27-1
short 16bits -215。。。。。215-1
int 32bits -231。。。。。231-1
long 64bits -261。。。。。261-1
java的整数类型依赖于具体的系统,每种类型在任何一种机器上占用同样的存储空间。
4、浮点数 float和double
缺省为double
float 32bits
double 64bits
java在进行移位运算时要小心。因为当左移的运算数是int类型时,每移动一位它的31位就会被丢弃,当左移的运算符是long类型时,每移动1位它的第63位就要被移出而且被丢弃。
将值每右移一次,就相当于将该值处以2而且舍弃了余数。
右移时,被移走的最高位由原来最高位的数字补充。例如,如果要移走的值为负数,每一次右移都在左边补1.
java的有符号左移或右移如下
>> <<
无符号则为,不需要保留符号位
>>> <<<