Java—基本数据类型转换

1. 自动类型转换:容量小的类型自动转换成容量大的数据类型(无精度丢失)

  (1) byte,short,int三种类型,在计算时,会自动转换成 int 类型。

// byte -> short 自动转换
public class Test{
    public static void main(String[] args){
        byte b = 10;
        short s = b;
    }
}
// short -> int 自动转换
public class Test{
    public static void main(String[] args){
        byte b = 10;
        short s = b;
        int ha = s;
    }
}
// int -> long 自动转换
public class Test{
    public static void main(String[] args){
        int a = 10;
        long lon = a;
    }
}

 (2) char类型自动转 int 类型时,结果输出为对应的ASCII码

// char -> int 自动转换
public class Test{
    public static void main(String[] args){
        char sex = '男';
        int sex2 = sex;
        System.out.println(sex2);
    }
}

//结果输出为 30007 ,表示‘男’这个字符的ASCII码

(3) float类型转double类型

// float -> double 自动转换
public class Test{
    public static void main(String[] args){
        float f = 20f;
        double d = f;
        System.out.println(d);
    }
}

//输出结果为 20.0

2. 强制类型转换:容量大的类型强制转换成容量小的数据类型 (精度可能丢失)  

(1) 直接利用自动转换,程序会发生报错

//小容量转大容量类型,程序会报错

// int -> short 自动转换; 程序报错!
public class Test{
    public static void main(String[] args){
        short a = 10;
        a = a + 1;    //这里 1 属于int类型
        System.out.println(a);
    }
}

//  int -> byte 自动转换; 程序报错!
public class Test{
    public static void main(String[] args){
        byte a = 10;
        a = a + 1;    //这里 1 属于int类型
        System.out.println(a);
    }
}

// long -> int 自动转换; 程序报错!
public class Test{
    public static void main(String[] args){
        int a = 10;
        long b =12;
        a = a + b;    
        System.out.println(a);
    }
}

// float 转 double 同理

(2) 利用强制类型转换,可以避免程序报错,且转换成功 

// 强制类型转换
public class Test{
    public static void main(String[] args){
        short s1 = 10;
        s1 = (short)(s1 + 1);  // 1为int类型
        System.out.println(s1);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值