1.java的int都是4位的,不因为机器不同而不同
2.int和double是默认类型
意思是说 int a = 8;
float a = 0.8;
等等
当你写一个8的时候,系统默认是int型。
3.长整型
后缀加L
4.其他数制
0x十六进制
0 八进制,容易和十进制搞混
0b开头二进制 jdk7开始引入
5.数字可以带下划线
eg: int a = 1000_0000_0000;
6.指数
十六进制的数可以表示浮点数
eg:0.125 可以表示成 0x1.0p-3
p表示指数
尾数采用十六进制,也就是上面的1.0是十六进制,指数是十进制,也就是上面的-3是十进制,指数的基数是2,也就是p是2,也就是2的-3次方
7.无穷大和NaN
正负无穷大表示溢出。NaN表示不是一个数
正整数除以0得到正无穷大,而0/0或者负数的平方根得到的是NaN.
三个常量分别是Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY,Double.NaN分别表示正无穷大,负无穷大,不是一个数
注意,实际中不能这样检验
if(x == Double.Nan) //is never ture
所有“非数值”的值都认为不相同的,应该这样用
if(Double.isNaN(x)) //check whether x is "not a number"
8.浮点数不适用于禁止出现舍入的金融计算
eg: 2.0-1.1将是0.89999999999
主要因为计算机内是二进制,无法精确表示1/10.
精确计算用BigDecimal这个类
9.boolean
boolean的值时true或者false
java中,整型和boolean不能相互转化
eg: if(x = 0) 不能通过编译
因为if里面必须是一个boolean类型的,只能是true或者false,0不能转化为false。
在c或者c++里可以写成if(0)