前言java
JavaSE是Java开发者必须熟练掌握的基础知识,我在这里把一些日常比较容易忽视的点记录下来,以便后面查阅。数组
1、数据类型转换 spa
Java数据类型主要分为两大类,基本数据类型和引用数据类型。基本数据类型分为四类八种基本类型,包括整数、浮点数、字符、布尔;引用数据类型主要为类、数组、接口等。code
四类八种数据类型blog
1.1 自动类型转换接口
java在给数据类型赋值运算时,会自动将取值范围小的数据类型提高到取值范围大的数据类型(如byte、short、char运算时会自动提高为int)。开发
值得一提的是,b3=1+2这句,编译没有报错,前面咱们说过byte、short、char运算时会自动提高为int,此时咱们并无进行强制转换,为何没有报错呢?缘由是1和2是常量,在编译时期已经肯定他们相加不会超过byte的取值范围,编译器会将编译器
他们相加的结果转为byte类型。而b4=b1+b2,编译就会报错,这是由于b1和b2是两个变量,编译器没法在编译时期肯定他们的值,会将他们相加的值做为int类型处理,用byte来接收天然会报错了。编译
+=、-=、*=、/=这些复合赋值运算符,在运算时,会隐式的将int向下转为byte、short、char等类型,因此b4+=1语句不会报错。class
1 public static void main(String[] args){ 2 byte b1=1; 3 byte b2=2; 4 byte b3=1 + 2; 5 byte b4=b1 + b2; 6 b4+=1; 7 System.out.println(b3); 8 System.out.println(b4); 9 }
1.2 强制类型转换
在将取值范围大的数据类型的值赋值给取值范围小的数据类型变量时,必须进行强制转换,将取值范围大的数据类型的值转换成取值范围小的数据类型,不然编译会报错,而且转换过程当中会形成必定的精度丢失。