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中的数据在啥时候可能会发生隐式转换?的主要内容,如果未能解决你的问题,请参考以下文章

数据类型转换

Python 的变量类型都可以隐式转换吗

Java 中的隐式转换是如何工作的?

Java 中的隐式转换是如何工作的?

关系运算符中的隐式转换

带你玩转JavaScript中的隐式强制类型转换