直接数是指直接赋给变量的具体数值。
直接数的类型
共有7种类型的直接数
1、int 型直接数:123、-123、0x41(十六进制的直接数)、071(八进制的直接)
2、long 型直接数:234L、456l、0x41L、071l、2136458933(在 int 类型的取值范围内的整数值是 int 型直接数;不在 int 类型取值范围内,但在 long 类型的取值范围内的整数值是 long 型直接数)
3、float 型直接数:7.8F、-0.98f
4、double 型直接数:89.043、-89.34D、98d、6.6E+7、6.6E-7
5、boolean 型直接数:true 和 false
6、char 型直接数:“a”、“/r”(回车)、“/u0041”
7、String 型直接数:“Hello World”
特点
1、对于基本类型的数据,除了 byte 和 short 类型之外,都有相应的直接数。
2、对于整数,如在 int 类型的取值范围内的整数值是 int 型直接数;不在 int 类型取值范围内,但在 long 类型的取值范围内的整数值是 long 型直接数。
3、对于 long、float 和 double 型直接数,可以分别加上后缀:L 或 l、F 或 f、D 或 d。
4、在整数后面加上“L”表示 long 型直接数,但不能以此类推:如 short 或 char,3S 或 3C 都是非法的直接数。
5、如果一个小数没有任何后缀,那么它是 double 型直接数。用是十进制科学计算法表示的数字都是 double 型直接数。
6、对于引用类型,只有 String 引用类型有直接数。
7、String 类型的直接数和 char 类型的直接数区别在于,前者表示字符串,位于双引号内,后者表示单个字符,位于单引号内。
直接数都属于特定的数据类型,可以把它直接赋值给类型一致的变量。
直接数赋值有以下的特点
1、基本类型的直接数不允许赋值给 String 类型的变量,同样,String 类型的直接数也不允许赋给基本类型的变量。
String s = 'a'; //把 char 类型直接数'a' 赋值给给 String 类型变量s,编译出错
char c = “a”; //把 String 类型的直接数“a” 赋值给 char 类型变量c,编译出错
2、boolean 类型的直接数只能赋值给 boolean 类型的变量,boolean 类型的变量只接受 boolean 类型的直接数。
3、把 int 类型的直接数赋给 byte、short 或 char 类型变量时,如果直接数位于该变量类型的取值范围内,就允许直接数赋值,否则必须进行强制类型转换。
4、把 float 型和 double 型直接数赋给整型变量时,必须经过强制类型的转换,而把整数类型直接数赋给 float 型和 double 型变量时,允许直接赋值。
5、把 double 型直接数赋给 float 类型变量时,必须经过强制类型的转换,而把 float 型直接数赋值给 double 类型变量时,允许直接赋值。
基本类型数据赋值的总原则是,取值范围小的数据类型允许直接赋值给取值范围大的数据类型,反之,则必须进行强制类型转换。