1、数据类型的转换

因为java数据类型在定义时已经确定了,因此不能随意转换成其他的数据类型,如果一定要做转换的话,在一定的限度内,我们可以进行数据的类型转换。

1.1、基本数据类型转换

转换规则

数据类型由低到高 ——>

Java类型的转换有什么用 java类型转换的原理_强制类型转换


在所有的基本数据类型中,只有boolean不能与其他类型进行转换,char只能和int进行转换。

按照从低到高从高到低可以分为两种转换方式

  • 从低级到高级:自动类型转换,也称为隐式转换,数据之间的转换是自动发生的,不会损失精度。自动转换需要满足两个条件:
  1. 两种数据类型必须兼容,比如我们不能将字符串和数字进行转换
  2. 目标类型的范围必须大于源类型的范围
  • 从高级到低级:强制类型转换,也称为显示转换,有可能损失精度,通过在源类型前面加上(目标类型)进行强制转换
  • 实例演示
float f = 1; // 隐式转换,将int类型的1赋值给级别更高的flaot类型
double d = (double)f;//强制转换,将低级别的float类型赋值给高级别的double类型

通俗点来说:高级别的类型就好比father,低级别的类型就好比son,自动类型转换就好比:突然有一天,son要变成father了(son:好家伙,熬了这么多年,我终于成你老子了,果断同意呀,看老子怎么检查你的作业。。。你情我愿,是为自动转换);而强制类型转换就好比(father:w艹,老子要变son了?这我不凉了,果断不同意呀。。。系统:我就要你变。。。你不情我愿,是为强制类型转换);

1.2、需要注意的细节

先来看一段代码:

public static void main(String[] args){
	byte b = 10;
	byte resule = b+1
}

在上面的代码中,byte resule = b+1 是不正确的,我们在前面说过,整形常量一般默认是为int类型的,当一个低级别的类型和一个高级版的类型进行算术运算时,低级别的类型会自动转换成高级别的类型,然后再进行运算,所以,这里的b+1的结果实际上是一个int类型的数据,将int类型的数据赋值给byte的result,很明显是不行的,所以我们需要进行强制类型转换:byte result = (byte)b+1;


这一期到此就结束了,下一期主要是对运算符介绍,如果这篇文章对您有帮助的话,还请点赞、关注支持一下,非常感谢您的观看!!!