java基本数据类型转换与陷阱

强类型语言

Java 语言是一种强类型的语言。强类型的语言有以下几个要求:

第一、变量或常量必须有类型,而且只能在声明以后才能使用。
第二、赋值时类型必须一致:值的类型必须和变量或常量的类型完全一致。
第三、运算时类型必须一致:参与运算的数据类型必须一致才能运算。


基本数据类型转换

(1) boolean类型不参与转换
(2)隐式转换A:从小到大
B:byte,short,char – int – long – float – double
C:byte,short,char之间不相互转换,直接转成int类型参与运算。
(3)强制转换A:从大到小:可能会有精度的损失,一般不建议这样使用。
B:格式: 目标数据类型 变量名 = (目标数据类型) (被转换的数据);
注意:byte和short型都没有常量形式。他们都是接收一个不超过他们取值范围的int型常量(隐式转换);如果这个int常量超过了他们的取值范围必须使用强制转换。

思考题和面试题

    A:下面两种方式有区别吗?
        float f1 = 12.345f;
        float f2 = (float)12.345;
    B:下面的程序有问题吗,如果有,在哪里呢?
        byte b1 = 3;//ok
        byte b2 = 4;//ok
        b1 = b1 + 1;//error
        b1 += 1;    //ok,扩展的赋值运算符隐含了一个强制类型转换。
        b1=(byte)(b1+1);//ok,同上
        byte b3 = b1 + b2;//编译失败,因为是变量
        byte b4 = 3 + 4;//ok,因为是常量
    C:下面的操作结果是什么呢?
        byte b = (byte)130;
    D:字符参与运算
        System.out.println('a');//a
        System.out.println('a' + 1);//98
    E:字符串参与运算
        这里其实是字符串的连接
        System.out.println("hello"+'a'+1);//helloa1
        System.out.println('a'+1+"hello");//98hello
        System.out.println("5+5="+5+5);//5+5=55
        System.out.println(5+5+"=5+5");//10=5+5
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值