Java类型转换

Java类型转换

byte, short, char -> int -> long ->float ->double

​ 内存容量

低----------------------------------------------------------->高

注:浮点型优先级比整数型优先级高

强制转换

​ 高—低 需要强制转换(类型)变量名

自动转换

​ 低—高 直接自动转换

public class Demo01{
    public static void main(String[] args)
    {
        int ia = 32;
        long la = ia; //低 -- 高 ok
        float fa = ia;//低 -- 高 ok
        //byte ba = ia;//error 高 -- 低 需要强制转换
        byte ba = (byte)ia;
        
        
        /*
        byte, short, char 内存容量相同
        byte类型的值赋给char类型需要强制转换
        char类型的值赋给byte类型需要强制转换
        */
        short sa = 96;
        byte ba = 100;
        //char ca = sa;//error 需要强制类型转换
        //char cb = ba;//error 需要强制类型转换
        char ca = (char)sa;//ok
        char cb = (char)ba;//ok
        
        char cc = 'a';
        //short sb = cc;//error 需要强制类型转换
        //byte bb = cc;//error 需要强制类型转换
        short sb = (short)cc;//ok
        byte bb = (byte)cc;//ok
    }
}

转换时需要注意的问题

	1. 转换后溢出
	2. 转换后丢失精度
public class Demo02{
    public static void main(String[] args)
    {
        int i = 200;
        byte b = (byte)i;
        System.out.println("s=" + b);
        
        float f = 32.8f;
        int i2 = (int)f;
        System.out.println("i2=" + i2);
	}
}

结果:

s=-56
i2=32

JDK7新特性

​ 数字之间可以加下划线(_)分割

​ 输出10_0000_0000不会有下划线

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值