美文网首页我的 Java 进化史
第六课 基本数据类型之间的转换

第六课 基本数据类型之间的转换

作者: Yorick_Xu | 来源:发表于2020-05-18 20:35 被阅读0次

1 自动类型转换

1.1 什么是自动类型转换

  • 容量小的数据类型可以自动转换为容量大的数据类型

注:容量的意思是该基本数据类型的表示范围的大小(参照第五课的基本数据类型表示范围)

1.2 基本类型之间的自动类型转换

基本数据类型自动转化图
  • 图中,黑色实线表示无数据丢失的自动类型转换;红色虚线表示可能存在精度损失的类型转换。
  • 特例:可以将整型常量直接赋值给byteshortchar等类型变量,而不需要进行强制类型转换,只要不超过表示范围。

2 强制类型转换

  • 基本语法
byte a = 100;
int b = (int)a;
  • 当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。
int x = 300;
byte bx = (byte)x; // 此时,bx的值需要根据内存进行分析,而不是300

3 运算时类型提升

  • 做所有的二元运算过程中,都伴随着类型提升问题
  • 运算过程中的类型提升,需要先进行类型的转换后再进行运算

测试代码如下:

int a = 1000000000;
int b = 20;

System.out.println((long)a * b); // 此时a提升为long类型,整个表达式就提升了
System.out.println((long)(a * b)); // 此时a*b的整体被提升到long型

运行结果如下:

20000000000
-1474836480

注:当出现以下情况时,最好在表达式开始之初就将类型进行提升(如long_1所示),而不是在结尾处进行类型提升(如long_2所示),防止前半部分计算时已经发生溢出的现象

long_1 = 70L * 60 * 24 * 365;
long_2 = 70 * 60 * 24 * 365L;

相关文章

  • 类型转化问题

    一.类型分为 基本数据类型 应用数据类型 二.基本类型之间的转换 同种数据类型之间的转换整形之间的转换: 1.大的...

  • JAVA的类型转换

    基本数据类型之间的转换(值转换) boolean类型不可以和其他基本数据类型进行转换 整型,字符型,浮点型之间的转...

  • Java包装类

    包装类 装箱:把基本数据类型转换成包装类 拆箱:把包装类转换成基本数据类型 基本数据类型和字符串之间的转换

  • Java基础学习一 基本数据类型

    基本数据类型 1.Java程序体解读 2.基本数据类型 关于基本数据类型之间的相互转换,转换规则: 1,八种基本数...

  • 基本数据类型和对象包装类型(引用类型)

    1.包装类型常用于基本数据数据类型和字符串类型之间转换 基本数据类型转换为字符串 字符串转化为基本数据类型 2.基...

  • Java 中基本类型和字符串之间的转换

    Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。 其中,基本...

  • Java中基本数据类型的转换

    Java中的八种基本数据类型之间可以进行转换。数据之间的转换分为两种:自动(隐式)转换和强制(显式)转换。 1、数...

  • c++基础-异常处理和字符串操作

    类型转换 1 static_cast 静态转换 用于基本数据类型之间的转换,如把int转换成char 2 con...

  • 基本数据类型对象包装类

    基本数据类型对象包装类。 基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换 基本数据...

  • c++中的类型转换

    static_cast 静态转换 用于基本数据类型之间的转换。比如把int转换成char。2.const_cast...

网友评论

    本文标题:第六课 基本数据类型之间的转换

    本文链接:https://www.haomeiwen.com/subject/unksohtx.html