java基本数据类型
类型表
| 类型 | 字节 | 取值范围 | 示例 |
|---|---|---|---|
| byte | 1 | -128 到 127(-27到27-1) | byte b = 10; |
| short | 2 | -32768 到 32767(-215到215-1) | short s = 10; |
| int | 4 | -2147483648 到 2147483647(-231到231-1) | int i = 10; |
| long | 8 | -9223372036854775808 - 9223372036854775807(-263到263-1) | long l = 10L; |
| float | 4 | 大约 ± 3.40282347E+38F (有效位数为 6 ~ 7 位) | float f = 10.10F; |
| double | 8 | 大约 ± 1.79769313486231570E+308 (有效位数为 15 位) | double d = 10.10D; |
| char | 2 | \u0000 到 \uffff | char c = 'A'; |
| boolean | true, false | boolean b = true; |
- Unicode码点:即编码表中字符代表的编码值,比如字符A为U+0041。字符𝕆为U+1D546
- char 类型描述了UTF-16(两字节)编码的一个代码单元,如果字符编码值不大于两字节,则可以使用char
- char 类型不能表示超过两字节的字符,比如 char s = '𝕆'; 将会编译错误。请使用String
- float 和 double 类型不能用在金融领域,比如 2.0 -1.1 = 0.8999999999999999
- 整数(byte, short, int, long)除0,抛异常java.lang.ArithmeticException: / by zero,比如 12 / 0
- 浮点数(float, double)除0可以得出三个值
- 正无穷大,比如 12.0 / 0
- 负无穷大,比如 -12.0 / 0
- NaN,比如 -0.0 / 0。使用Double.isNaN(double v) 来判断是否是NaN,即 d !=d
- 使用数学运算符运算时,遵行如下原则
- 如果两个操作数中有一个是 double 类型, 另一个操作数就会转换为 double 类型
- 否则, 如果其中一个操作数是 float 类型, 另一个操作数将会转换为 float 类型
- 否则, 如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型
- 否则, 两个操作数都将被转换为 int 类型
- int转float,long转float,long转double可能会有精度丢失。