基本数据类型
基本数据类型种类
整数
- byte
- short
- int
- long
浮点型
- float
- double
字符型
- char
布尔型
- boolean
数据类型的转换
强制转换
int a = 127;
byte b = (byte)a;
System.out.println(b); //127
int a = 128;
byte b = (byte)a;
System.out.println(b); //-128 byte存储的数据为-128~127,128超出了byte存储区间
double a = 22.33;
byte b = (byte)a;
System.out.println(b); //22 浮点转整数,需要注意精度问题
强制转换时需要注意数据的大小,防止高容量转低容量时出现因为数据过大产生问题,包括浮点型转整数型,还涉及到精度部分,也需要注意
自动转换
byte c = 3;
int d = c;
System.out.println(d); //3
byte c = 3;
double d = c;
System.out.println(d); //3.0
char存储的字符是存在于Unicode编码表中的数据,格式为u0000~uffff,可通过\符号进行转义(转义符号\,在后面加上一些特定的字符,会产生不同的效果,例如\n意味着换行)
System.out.println((int)'王'); //29579
System.out.println('\u5555'); //啕
boolea类型不参与数据类型转换
java中各进制的展示
System.out.println(0b10); //2 二进制 0b
System.out.println(010); //8 八进制 0
System.out.println(10); 10 十进制
System.out.println(0x10); //16 十六进制 0x 0~9 A~F
浮点数的精度问题
float a = 2222222222222222F;
float b = a + 1;
System.out.println(a == b); //true
float c = 0.1f;
double d = 1/10;
System.out.println(c == d); //false
这块我也不是太理解,只知道是精度的问题,但是感觉多少有点抽象,因为我在平时的工作中,float、double用的并不多,不是太熟悉,只是知道这块有大坑
java7新特性
int a = 1_0000_0000;
System.out.println(a); //100000000 可通过_分隔数字,方便查看位数,但是并不影响输出
8大基本类型,我在工作过程中,用的最多的是int,boolean,偶尔会用于double,只知道float好像有坑,所以几乎没用过,也就不太了解,后续有时间单独去了解一下。字符串用引用类型String,金额用BigDecimal,至于整数、浮点型的数值范围,可以在对应的包装类中看到