java基本数据类型

基本数据类型

整型:byte        short        int        long

浮点型:float        double

字符型:char

布尔型:boolean

类型 字节长度 取值范围
byte 1 -128~127
short 2 -32768~32767
int 4 -2147483648~2147483647
long 8 -9223372036854775808 ~ 9223372036854775807
float 4 大约士3.40282347E+38F(6~7位有效数字)
double 8 大约士1.797 693134862 315 70E+308(15位有效数字)


byte类型

计算机为什么用补码形式存储?

1.原码只能进行加法运算,不能进行减法运算,因此出现了反码

2.反码进行运算时,会产生+-0的情况,为了解决这种情况,出现了补码

为什么byte类型127+1=-128?

java里加减法默认是int型,127+1=128

但用补码表示01111111+00000001=10000000是-128


浮点类型精度丢失问题

例如

public class Test {
    public static void main(String[] args) {
    	System.out.println(1.2 - 1);
    }
}

输出结果

0.19999999999999996

这是因为计算机是以二进制进行存储的,部分小数二进制无法精确,导致结果与预期不符。

如何解决?

public static void main(String[] args) {
		   BigDecimal b1 = new BigDecimal(Float.toString(1.2f));
		   BigDecimal b2 = new BigDecimal(Float.toString(1));
		   float s = b1.subtract(b2).floatValue(); 
		   System.out.println("s----" + s);
}

char类型

1.字符类型实际上是一个16位无符号整数,这个数对应字符的编码

2.java字符类型采用Unicode字符集编码。Unicode是世界通用的定字长字符集,所用字符都是16位

3.任何一个字符都可以转化为一个整数,整数的范围是0-65535


boolean类型

boolean(布尔)类型有两个值:flase和true,用来判断逻辑条件。


转义字符

\n 表示回车

\r 表示换行符

\\ 表示反斜杠( \ )

\' 表示单引号( ' )

\" 表示双引号( " )

上一篇:2.6W + 字,彻底搞懂 JUC!


下一篇:财务模块中的金额字段类型设置