zoukankan      html  css  js  c++  java
  • Java中的类型转换

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

    可以分为:自动转换、强制转换

    Java中的自动转换

    特点:

    1、系统自动完成的,不需要程序员手动修改代码

    2、将取值范围小的类型 自动提升为 取值范围大的类型

    具体实例

    public static void main(String[] args) {
        int a = 1;
        byte b = 2;
        byte c = b + a; // 报错
        //int类型和byte类型运算,结果是int类型
        int d = b + a;
        System.out.println(d);
    }

    注意:

    整数类型直接写会默认为int

    小数类型直接写默认为double

    类型的范围大小:byte < short(char) < int < long < float < double

     

    Java中的强制转换

    特点:

    1、需要程序员手动修改代码

    2、语法:

    范围小的类型 变量名 = (范围小的类型)范围大的类型的数据

    3、从范围小 到 范围大(将取值范围大的类型强制转换成取值范围小的类型。)

    具体实例

    实例1

    int i = 1.5; // 错误

    double 类型内存8个字节,int 类型内存4个字节。1.5double 类型,取值范围大于int 。可以理解为double 是8升的水壶,int 是4升的水壶,不能把大水壶中的水直接放进小水壶去。

    想要赋值成功,只有通过强制类型转换,将double 类型强制转换成int 类型才能赋值。

    实例2

    int类型和double类型运算,结果是double类型,int类型会提升为double类型

    
    
    public static void main(String[] args) {
        int i = 1;
        double d = 2.5;
        double e = d+i;
        System.out.println(e);
    }

    注意:

    强制类型转换可能会造成数据的丢失哦,小伙伴们在应用时一定要慎重哦!

    Boolean类型不能发生强制类型转换

    byte short char 这三种数据类型发生数学运算时,会自动提升为int类型

    https://www.cnblogs.com/libinhong/
  • 相关阅读:
    行列式的六条运算法则整理
    李昊大佬的CV模板
    洛谷P2918 [USACO08NOV]买干草(一道完全背包模板题)
    .
    洛谷P2822 组合数问题
    欧拉筛法模板&&P3383 【模板】线性筛素数
    拓展欧几里得算法
    欧几里得算法求最大公约数模板
    P2678 跳石头
    【五一qbxt】test1
  • 原文地址:https://www.cnblogs.com/libinhong/p/10988463.html
Copyright © 2011-2022 走看看