5-5. 基本数据类型之间的互相转换

举报
数据分析与统计学之美 发表于 2021/09/28 18:02:40 2021/09/28
【摘要】 Java系列第五课

1、八种基本数据类型当中,除布尔类型之外,剩下的7种类型之间,都可以互相转换;

字节类型     byte         1字节              -128127
短整数类型   short        2字节             -3276832767
整数类型     int          4字节        -21474836482147483647
长整数类型   long         8字节                  不用记
单精度      float         4字节                  不用记
双精度      double        8字节                  不用记
字符类型    char          2字节                 065535

2、小容量向大容量转换,称为“自动类型转换”;

数据类型的容量从小到大排序:

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

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

char和short可表示的种类数量相同,但是char可以取更大的正整数 ,因为char中没有负数。 short【-32768,32767】 char【0,65536】

3、大容量转换成小容量,叫做“强制类型转换”;

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

4、重要的一个知识点

当整数字面值没有超出byte,short,char的取值范围,可以直接把字面值赋值给byte,short,char类型的变量。【注:这里直接赋值的是一个字面值,假如你把一个大容量类型的变量 赋值给 byte,short,char类型的变量,会出现编译错误。因为编译阶段只进行语法检查,不进行程序运算】

5、byte,short,char混合运算的时候,各自先转换成int类型再做运算。

public class Test {
    public static void main(String[] args) {
    		byte a = 100;
    		short b = 99;
    		char c = 99;
    		int d = a + b + c;
    		System.out.println(d);
    }
}

结果是:在这里插入图片描述

6、多种数据类型混合运算,先转换成容量最大的那种类型再做运算。

public class Test {
    public static void main(String[] args) {
    		byte a = 100;
    		short b = 99;
    		char c = 99;
    		// 混合运算的时候,abc都会被当作int类型参与运算
    		// 最终结果肯定也是属于int类型
    		// 而变量d属于short 类型      小容量
    		// 大容量转换为小容量会发生强制类型转换
    		// 需要使用强制类型转换符
    		// 因为你这里直接赋值的不是一个字面值,
    		// 而是一个运算表达式
    		// 因此,不能省略“强制类型转换符”
    	short d =(short) (a + b + c);
    	System.out.println(d);
        // 只有直接赋值整数型字面值的时候
		//才可以省略“强制类型转换符”
		short e = 100;
		System.out.println(e);
    }
}

结果是:在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。