数据类型和运算符

一、基本数据类型

int是最常用的数据类型,因此通常情况下,直接给出一个整数值默认就是int类型。

小数默认double类型

除此之外,如下两种情况必须指出。

★如果直接讲一个较小的整数值(在byte或short范围内)赋给一个byte或short变量,系统会把这个整数值当成该类型来处理。

★如果使用一个巨大整数值(超出了int范围)时,java不会自动把这个整数值当成long类型来处理,应该在后面添加I或者L后缀,通常推荐使用L,I易与1混淆。

验证以上结论:

二、自动类型转换

在Java中不同类型的数据是不能进行计算的。

java中的运算特性:自动类型提升(以大的为主,数据类型自动提升到与表达式中最高的等级操作数同样的类型最高位double)

         自动类型转换图

例如:

 输出:7, b由byte转为int;

如果出现  b = b + 1; 就会出现无法编译, b+1为int型,b为byte型,类型不一致,编译错误;

结论:赋值运算时常量可以进行自动类型转化,变量不可以

例如:在(byte+btye、short+short、short+byte中)

这三种情况都不能正常编译,一般来讲,byte = btye + byte......所以这是为什么呢?

这是由于jvm内部指令造成的。

如图片所示,加运算(Tadd)只有int,long,float,double四个数字类型支持,所以比int小的加运算自动转化成int的加运算,结果也是int

因为b1和b2都是byte类型,在进行计算的时候a和b都被自动提升为int类型,而等式左边的b3仍然是byte类型的,所以编译就会出错,这种情况只能进行强转。

总结:在进行加运算的时候比int小的数据类型之间的运算都会自动转化成int的加运算,所以赋值的时候就得注意两边的数据类型是否一致。

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值