学Java的第十二天

类型转化:

关于基本数据类型的相互转换,转换规则:

1.八种数据类型当中除了布尔型之外剩下的都可以相互转换。

2.小容量向大容量转换,成为自动类型转换,容量从大到小排序。

byte<short=char<int<long<float<double

注:任何浮点型数据不管占用多少字节,都比整数型容量大。

char和short可表示的种类数量相同,但是char可以取更大的正整数。

3.char c='a';

   char c=97;

效果相同。

4.大容量转换成小容量,叫做强制类型转换,需要加强制类型转换符,程序才能编译通过,但是在运行阶段可能会损失精度,所以谨慎使用。

5.当整数字面值没有超出byte,short,char的取值范围,可以直接赋值给byte,short,char类型的变量。

6.byte,short,char混合运算的时候,各自先转换成int类型在做运算。

7.多种数据类型混和运算,先转换成容量最大的那种类型再运算。

public class DataTypeTest04
{
	public static void main(String[] args){
		byte a=20;
		//byte a=1000;
		//变量不能重名,变量超出范围。
		
        short b=1000;
		//默认值为int,范围没超过。
		
        int c=1000;
		
        long d=c;
		//小容量转换成大容量,直接转换。
		
        int e=(int)d;
		//强制转换
		
        int f=10/3;
		//10和3都是int,结果为int正确。
		
        double g=10/3;
		//结果为3.0
		
        g=10.0/3;
		//结果为3.3333333
		
        long h=10;
		//自动类型转换
		
        //int i=g/3;
		//错误,多个数据在运算过程会转换成容量最大的类型
		
        int i=(int)h/3;
		//byte j=(byte)(int)k/3;
		//编译报错,h转成byte,编译器只检查语法。
		
        byte j=(byte)(int)(k/3);
		
        //short l=10;
		//byte m=5;
		//short n=l + m;
		//编译报错,short和byte运算会先转换成int再进行计算结果
        为int,int赋值给short会出现精度丢失。
		
        //short n=(short)(l + m);
		char o='a';
		System.out.println(o);
		//结果为a
		System.out.println((byte)o);
		//结果为97
      }
		
}

上一篇:笔记


下一篇:char 数组里放入 比他大 的int 型数组,编译也可以通过 不会报错,只不过输出为空格