java学习(二)数据类型

来源:互联网 发布:sql怎么备份数据库 编辑:程序博客网 时间:2024/05/17 03:09

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)

0 0