java中的数据在啥时候可能会发生隐式转换?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的数据在啥时候可能会发生隐式转换?相关的知识,希望对你有一定的参考价值。
参考技术A当小范围数据类型——>大范围数据类型,这个时候是隐式转换,也叫作自动转换。
int i = 5; double j = 2; System.out.println(i+j);
答案为7.0,为什么不是7呢?
因为int是小类型,相对于double来说
当大范围数据类型——>小范围数据类型,这个时候是显示转换,也叫作强制转换。
Object obj ="hello";String str = (String)obj; System.out.println(str);
答案是hello。但是为什么obj对象转换为String要强制呢?
由于Object是java所有类的父类,意味着Object类型范围大于String所表示范围
如果满意,望采纳,谢谢!
7数据类型转换
在Java程序中,当数据类型不一样时,将会发生数据类型转换。
Java中的数据类型转换分为:
自动类型转换
强制类型转换
具体如下:
/*
当数据类型不一样时,将会发生数据类型转换
自动类型转换(隐式) 1.特点:代码不需要进行特殊处理
2.规则:数据范围从小到大
强制类型转换(显式)
1.特点:代码需要进行特殊的格式处理,不能自动完成。
2.格式:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据
注意事项:
1.强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出
2.byte/short/char这三种类型都可以发生数学运算,例如加法“+”
3.byte/short/char这三种类型在运算时首先会被提升成为int类型
4.boolean类型不能发生数据类型转换 */ public class DataType{ public static void main(String[] args){ System.out.ptintln(1024);//这就是一个整数,默认是interesting类型
System.out.println(3.14);//这就是一个浮点数,默认就是double类型
//左边是long类型,右边是默认的int类型,左右不一样
//一个等号代表赋值,将右侧的int常量,交给右侧long变量进行存储
//int-->long,符合从小到大的要求
//这一行代码发生了自动类型转换
long num1 = 100;
System.out.println(num1);//输出100 自动类型就举这一个小栗子 主要是记住数据范围从小到大,这里的数据范围从小到大与字节数是不一定相关的
//当从左到右不是从小到大,例如int num = 100L时,就不能发生自动类型转换
//就应该写成如下形式
int num = (int) 100L;
System.out.println(num);//这就是强制类型转换,只要记住转换格式就行了,这里需要注意的是,强制类型转换很容易出现数据溢出
} }
以上是关于java中的数据在啥时候可能会发生隐式转换?的主要内容,如果未能解决你的问题,请参考以下文章