Java数据类型
- 基本数据类型
- int(整形)
- long(长整型)
- double(双精度浮点型)
- float(浮点型)
- short(短整型)
- char(字符型)
- byte(字节型)
- boolean(布尔型)
- 注意事项
一、基本数据类型
http://1.int(整形)
整形类型,无论机器型号(因为有JVM,java的所有类型都是固定大小的),整形在java中占四个字节。
其对应的包装类: Integer
取值范围:-2147483648 -> 2147483647,如果赋值超出此范围会报错(如图)

2.long(长整型)
大小:8个字节
对应的包装类:Long
取值范围:-9223372036854775808 -> 9223372036854775807 (基本上可以表示能遇到的所有大小了)
定义方法:默认的数字是int型,所以定义是需要说明:
long a = 10L;//或10l(不过根据阿里巴巴java规范 不推荐写成小写的l,毕竟容易被看成1)
3.double(双精度浮点型)
大小: 8个字节
注意事项:
- java中的小数默认是double类型,不是float类型
- Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差。如下:
double num = 1.1;
System.out.println(num * num)
// 执行结果
1.2100000000000002
4.float(浮点型)
大小:4个字节
对应的包装类:Float
注意事项:float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都考虑使用double类型,不推荐使用float类型。
定义:默认是double所以需要说明,不加说明会报错(相当于把一个double类型赋值给一个float类型的变量,这样会有可能有精度损失,因此会报错)

float num = 1.0f;//或1.0F
5.short(短整型)
大小:2个字节
对应的包装类:Short
取值范围:-32768 ->32767
6.char(字符型)
大小:2个字节
对应的包装类:Character
注意事项:这点与c语言的char类型不同,java中采用的是Unicode编码,因此char类型可以赋值给一个汉字,但是在编译时可能会出现如下情况(编码格式不对):
Test.java:3: 错误: 未结束的字符文字
char ch = '鍛?';
^
解决上述情况需要在javac编译时加上:
javac -encoding UTF-8 Test01.java
7.byte(字节型)
大小:一个字节
对应的包装类:Byte
取值范围:-128 -> 127
注意事项:可以直接赋值,但是超出范围会报错,不过可以通过强制类型转换进行赋值 :
int a = 128;
byte b = (byte)a;
System.out.println(b);
//运行结果:-128
byte b = -128;
b--;
System.out.println(b);
//运行结果:127
byte a = 127;
a++;
System.out.println(a);
//运行结果:-128
8.boolean(布尔型)
大小:没有明确的规定,有的说一个字节,有的说占一个比特位。
取值范围:只有true或者false。
对应的包装类:Boolean
注意事项:1)boolean类型不能和其他基本数据类型之间进行相互转换。

2)在java中不能用0表示false,也不能用非零表示true。

二、注意事项
- java中不存在无符号类型数据,所有的基本数据类型都是有符号的。
- 因为有JVM的存在,java的数据类型的大小(所占的字节数)不会因为机器的变化而发生变化。
- java中的所有基本数据类型需要初始化才能使用,不然会报错(编译时报错)。
- java小的类型赋值给大类型需要进行强制类型转换(可能产生精度损失,因此java会让用户来决定是否要这么做,推卸责任),小的类型赋值给大的不用强转(默认进行)。