java类型转换

文章讨论了Java中涉及到类型转换的面试题,解释了byte类型变量在运算时会提升为int类型,因此不能直接将int结果赋值回byte变量,需要强制类型转换。同时提到了Java的常量优化机制,即使在3+4这样的字面量运算中,编译器也会将结果直接优化为字节码中的最终值。
摘要由CSDN通过智能技术生成

public class LleiXingZhuanHuan {
    public static void main(String[] args) {
        /*
         * 类型转换面试题1:下列代码是否存在错误,若果有,请指出说明,并纠正。
         * byte b1=4;
         * byte b2=3;
         * byte b3=b1+b2;
         * 
         * 错误原因:
         *          b1和b2是两个byte类型,在运算的时候,会提升为int类型
         * 提升之后,就是两个int在运算了,运算的结果还是int
         * 将int类型的结果,赋值给byte类型的变量,属于大给小,不能直接给。
         * 
        byte b1=4;
        byte b2=3;
        byte b3=(byte)(b1+b2);
        System.out.println(b3);


        面试题2(正确)
         byte b=3+4;
       System.out.println(b);


       这里的3和4是两个字面量,之前说过,所有整数默认都是int类型,说以这里应该是两个int做运算
       运算后的结果还是int,int类型结果给byte类型变量赋值,大的给小的,不能直接给,应该是编译错误
       但是注意:
       java存在常量优化机制:在编译的时候(javac)就会将3和4这两个字面量进行运算,
                    产生的字节码文件:byte b=7

         */
      
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值