码迷,mamicode.com
首页 > 其他好文 > 详细

数据类型转换

时间:2019-04-13 13:44:48      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:参与   class   特殊   布尔类型   stat   pac   int   种类   类型转换   

为什么要数据类型转换?

Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。

数据类型转换的种类

自动类型转换(隐式):

  • 特点:代码不需要我们进行特殊处理,自动完成
  • 规则:将数据取值范围小的类型 自动提升为 数据取值范围大的类型 。

案例演示:

package com.wu.day02;

public class Demo1DataType {
    public static void main(String[] args) {
        System.out.println(1024);//默认类型为int
        System.out.println(3.24);//默认类型是double
        // 左边是long类型,右边是默认的int类型,左右不一样
        long number = 1024;// int ---> long 符合了数据范围,从小到大的要求。发生了自动类型转换
        System.out.println(number);//100
        double number2 = 3.14F;  // float -->double。符合了数据范围,从小到大的要求。
        float number3 = 332L; // long ---> float .符合了数据范围,从小到大的要求。
        
    }
}

强制类型转换(显示)

  • 特点:将 取值范围大的类型 强制转换成 取值范围小的类型。代码需要进行特殊的格式处理,不能自动完成。:
  • 格式:范围小的类型  范围小的变量名称  = (范围小的类型)原本范围大的数据;

代码演示:

 

package com.wu.day02;

public class Demo2DataType {
    public static void main(String[] args) {
        // 左边是int类型,右边是long类型 int---> long 不能自动完成.
        // 格式: int类型  变量名称 = (int类型)long类型;
        int number1 = (int) 6565L;
        float number2 = (float) 3.14;
        long number3 = (long) 2.314F;

    }
}

类型转换注意事项:

  •  强制类型转换一般不推荐使用,因为有可能发生数据溢出,精度损失。
        int number1 = (int) 656513213234234356L;
        System.out.println(number1);//数据溢出。19743732
        long number3 = (long) 2.314F;
        System.out.println(number3);//2 精度损失
  • byte、short、char都可以发生数学运算。 运算时会先提升为 int ,在进行计算。
  • 布尔类型,不能发生数据类型转换
  • 在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到对应的int数字,再和int类型计算。char类型提升 为了int类型。

 

 

 

 

---

数据类型转换

标签:参与   class   特殊   布尔类型   stat   pac   int   种类   类型转换   

原文地址:https://www.cnblogs.com/wurengen/p/10700698.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!