练习:
练习1:
public class Ex01{
public static void main(String args[]){
//boolean b = true;
//boolean b = false;
boolean b = 0;//这个会报错,说明boolean类型只能使用true或者false
System.out.println(b);
}
}
练习2:
public class Ex02{
public static void main(String args[]){
//char a = 'A';
char a = '龙';
System.out.println(a);
}
}
练习3:
public class Ex03{
public static void main(String args[]){
byte b = 0;
char c = 0;
short s = 0;
int i = 0;
float f = 0;
// float f = 0.1;//会报错,可以加上F告诉编译器该字面量为float类型
double d = 0;
// i = l; //会报错,long类型赋值给int类型会导致数据溢出
int j = 0.5 * 10;//在一个四则运算中结果是什么数据类型,取决于最大的那个数据类型,在这里右边结果的数据类型就是双精度浮点型。也会报错。
byte k = (byte)(b + 200);//强制类型转换,如果结果超过了数据类型的范围,就会导致数据异常.
System.out.println(k);
}
}
字面量:数据常量。
JAVA默认
1.整数字面量为整型(int)
2.小数字面量为双精度浮点型(double)
在上面代码可以看到float f = 0.1;会报错(double->float进行赋值),要使float f = 0.1不报错,需要在后面加上F
那么:
byte b = 0;
short s = 0;
char c = 0;
0是整型,怎么会编译成功(int->byte,从高向低赋值)呢?
因为这三个变量例外,可以直接用整型。只是不能超过自身的范围。
下面是各个类型的取值范围:
byte < short < int < long < float < double