类型转换学习笔记

简介: 类型转换学习笔记

类型转换是将一个值从一种类型更改为另一种类型的过程。例如,可以将String类型数据“123”转换为一个数值型,而且可以将任意类型的数据转换为String类型。

如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败。

数据类型转换有两种方式,即隐式转换与显式转换。

隐式类型转换

 从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这种类型的转换称为隐式转换。下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。这些类型按精度从低到高排列的顺序为byte < short < int < long < float < double。

隐式类型的转换也要遵循一定的规则,来解决在什么情况下将哪种类型的数据转换成另一种类型的数据。

使用int型变量为float型变量赋值,此时int型变量将隐式转换成float型变量。现将各变量隐式转换,实例代码如下:

public class Conver { // 创建类
  public static void main(String[] args) {
    // 定义byte型变量mybyte,并把byte型变量允许的最大值赋给mybyte
    byte mybyte = 127;
    int myint = 150; // 定义int型变量myint,并赋值150
    float myfloat = 452.12f; // 定义float型变量myfloat,并赋值
    char mychar = 10; // 定义char型变量mychar,并赋值
    double mydouble = 45.46546; // 定义double型变量,并赋值
    System.out.println("byte型与float型数据进行运算结果为:" + (mybyte + myfloat));
    /* 将运算结果输出 */
    System.out.println("byte型与int型数据进行运算结果为:" + mybyte * myint);
    System.out.println("byte型与char型数据进行运算结果为:" + mybyte / mychar);
    System.out
        .println("double型与char型数据进行运算结果为:" + (mydouble + mychar));
  }
}

要理解类型转换,读者可以这么想象,大脑前面是一片内存,源和目标分别是两个大小不同的内存块(由变量及数据的类型来决定),将源数据赋值给目标内存的过程,就是用目标内存块尽可能多地套取源内存中的数据。

显式类型转换

当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算。

当执行显式类型转换时可能会导致精度损失。只要是boolean类型以外其他基本类型之间的转换,全部都能以显式类型转换的方法达到。

当把整数赋值给一个byte、short、int、long型变量时,不可以超出这些变量的取值范围,否则必须进行强制类型转换。例如:

byte b = (byte)129;


相关文章
|
12月前
|
安全 C++
C++ 新的类型转换
C++ 新的类型转换
75 0
|
5月前
|
存储 安全 编译器
C++:现代类型转换
C++:现代类型转换
44 5
|
12月前
|
安全 编译器 C语言
C++进阶 类型转换
C++进阶 类型转换
49 1
|
10月前
|
安全 程序员 编译器
C++中的类型转换
C++中的类型转换
|
编译器 C++
【C++】类型转换
【C++】类型转换
63 0
|
程序员 编译器 C++
C++ 几种类型转换
C++ 几种类型转换
|
C语言 C++
【C++中的类型转换】C语言类型转换与C++类型转换对比,以及4种C++类型转换详解
【C++中的类型转换】C语言类型转换与C++类型转换对比,以及4种C++类型转换详解
308 0
【C++中的类型转换】C语言类型转换与C++类型转换对比,以及4种C++类型转换详解
|
SQL 分布式计算 大数据
有类型转换_as | 学习笔记
快速学习有类型转换_as
有类型转换_as | 学习笔记
|
SQL 分布式计算 算法
无类型转换_选择 | 学习笔记
快速学习无类型转换_选择
无类型转换_选择 | 学习笔记
|
前端开发 Java 程序员
类型转换 | 学习笔记
快速学习类型转换,介绍了类型转化系统机制, 以及在实际应用过程中如何使用。
100 0
类型转换 | 学习笔记