java中有8种基本数据类型:byte、int、short、long、boolean、char、float、double
对应的类为:Byte、Int、Short、Long、Boolean、Charecter、Float、Double
逻辑型:boolean
文本型:char
整数型:byte、short、int、long
浮点型:float、double
byte: 1字节 8位 -128~127
short: 2字节 16位 -2^15~2^15-1
int : 4字节 32位 -2^31~2^31-1
long: 8字节 64位 -2^63~2^63-1
boolean:1字节 true false(java中不能以0或非0代替)
float: 4字节 32位 -3.403E38~3.403E38
double:8字节 64位 -1.798E308~- 4.9E324
char: 2字节 ’\u0000‘~‘ ’\uffff ‘(16进制的,换算过来即0~65535)
(1字节等于8位)
例子:
int a = 15; //整数默认为int
int b = 012; //整数前面以0开头是8进制
int c = 0x12; //整数以0x开头是16进制
int d = 0b1101; //整数以0b开头是2进制
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
long e = 19219318923L; //长整型的整数后面需要加l或者L,一般用L来表示长整型,l容易混淆
System.out.println(e);
//科学计数法(只适用于double)
double f = 12e2; //相当于12*10二次方
double g = 12e-2; //相当于12*10负二次方
System.out.println(f);
System.out.println(g);
//注意浮点型的不是那么精确,原因是小数点是无数的,二float和double只是相近于小数
float h = 0.1f;
double i = 1.0/10.0;
System.out.println(h==i);
//浮点型数值默认是double类型的
float j = 123123213F;
float k = j+1;
System.out.println(j==k);
//比较浮点数的时候使用BigInterge和BigDecimal
BigDecimal b1 = new BigDecimal(1.0);
b1 = b1.subtract(BigDecimal.valueOf(0.1));
b1 = b1.subtract(BigDecimal.valueOf(0.1));
b1 = b1.subtract(BigDecimal.valueOf(0.1));
b1 = b1.subtract(BigDecimal.valueOf(0.1));
b1 = b1.subtract(BigDecimal.valueOf(0.1));
System.out.println(b1);
System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);
BigDecimal b2 = new BigDecimal(0.1);
BigDecimal b3 = new BigDecimal(1.0/10);
System.out.println(b2.equals(b3));
System.out.println(b2);
System.out.println(b3);