一、基本数据类型
值得注意的是字符串不是基本数据类型,字符串是一个类,也就是引用数据类型。
1、布尔型-----boolean,boolean 类型所占存储空间的大小没有明确指定,其取值为true或false,其默认值为false。
2、字节型----byte,byte 类型所占存储空间大小为1个字节,其取值为-128——127,其默认值为0。
3、整型------int,int类型所占存储空间大小为4个字节,其取值为-2^31——2^31-1,其默认值为0。
4、短整型-----short,short类型所占存储空间大小为2个字节,其取值为-2^15——2^15-1,其默认值为0。
5、长整型-----long,long类型所占存储空间大小为8个字节,其取值为-2^63——2^63-1,其默认值为0。
6、字符型-----char,char类型所占存储空间大小为2个字节,其默认值为\u0000。
7、单精度浮点型-----float,float类型所占存储空间大小为4个字节,其取值为-2^128——2^128,其默认值为0.0F。
8、双精度浮点型-----double,double类型所占存储空间大小为8个字节,其取值为-2^1024——2^1024,其默认值为0.0D。
二、基本类型的类型转换
1、自动类型转换
1)byte-->short-->int-->long-->float-->double ,小精度可转大精度,大转小会失去精度。
public class AutoConversion{ public static void main(String[] args) { int a = 6; //int可以自动转换为float类型 float f=a; //下面将输出6.0 System.out.println(f); //定义一个byte类型的整数变量 byte b=9; //下面代码将出错,byte型不能自动转换为char型 //char c = b; //下面是byte型变量可以自动转换为double型 double d = b; //下面将输出9.0 System.out.println(d); }}
2)
public class PrimitiveAndString{ public static void main(String[] args) { //一个基本类型值和字符串进行连接运算时,基本类型值自动转换为字符串 String str2= 3.5f+""; System.out.println(str2);}
2、强制类型转化
当我们需要将数值范围较大的数值类型赋给数值范围较小的数值类型变量时,由于此时可能会丢失精度,因此,需要人为进行转换。我们称之为强制类型转换。
public class NarrowConversion{ public static void main(String[] args) { double dValue = 3.98; //强制把一个double类型的值转换为int int t = (int)dValue; //将输出3 System.out.println(t); }}
3、表达式类型的自动提升
当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升
//定义一个short类型变量 short sValue = 5; //表达式中的sValue将自动提升到int类型,则右边的表达式结果类型为int //将一个int类型赋给short类型的变量将发生错误。 sValue = sValue - 2;