Java基础-Java的基本数据类型
-
四种整型
-
整形的最高位是符号位,0代表正数,1代表负数
-
由正整数,负整数,0组成
-
为解决减法问题引入反码,为解决反码引起的正负0问题引入补码
-
负数在计算机中以补码保存
-
正数的反码和原码相同,负数的反码等于原码的符号位不变,其余各位按位取反
- 正数的补码和原码相同,负数的补码等于其反码加1
-
byte
- 大小:8位(1字节)
- 最大值:127
- 最小值:-128
-
short
- 大小:16位(2字节)
- 最大值:32767
- 最小值:-32768
-
int
- 大小:32位(4字节)
- 最大值:2147483647
- 最小值:-2147483648
-
long
- 大小:64位(8字节)
- 最大值:9223372036854775807
- 最小值:-9223372036854775808
-
-
两种浮点型
-
浮点型的最高位是符号位,0代表正数,1代表负数
-
十进制的小数在转换成二进制时可能存在无限循环的问题,因此浮点数存在精度丢失的问题
-
解决浮点数精度问题使用BigDecimal类
样例:
public static void main(String[] args) { BigDecimal b1 = new BigDecimal(Float.toString(1.2f)); BigDecimal b2 = new BigDecimal(Float.toString(1.0f)); float s = b1.subtract(b2).floatValue(); System.out.println(s); } -
float:32位单精度浮点数
-
大小:32位(4字节)
-
最高位表示符号位,符号位之后8位表示阶位,最后23为表示数值位
-
-
double:64位双精度浮点数
-
大小:64位(8字节)
-
最高位表示符号位,符号位之后11位表示阶位,最后52位表示数值位
-
-
-
一种字符型
-
char
-
大小:16位(2字节)
-
存储一个Unicode字符
-
转义字符
\"代表一个双引号\'代表一个单引号\\代表一个单斜杠\n代表回车\r代表换行
-
通常很少使用char类型,一般使用String类型
-
String不是基本数据类型
-
String是char类型的数组
-
-
-
一种布尔型
-
boolean
-
数值型和布尔型是不能相互转换的
-
只有两种取值:true和false
-
-
-
数值类型之间的转换
-
较小的数值类型可以自动转换成范围较大的数值类型
-
byte -> short -> int -> long
-
char -> int
-
int -> double
-
自动转换不会损失精度
-
-
较大的数值类型需要强制转换到较小数值类型
- byte <- short <- int <- long
- int -> float
- long -> double
- 数值之间强制类型转换可能会造成精度丢失
-

浙公网安备 33010602011771号