java基本数据类型转换

                                                          java基本数据类型转换

Java中一共有8种基本数据类型,分别为 byte,short,char,int,float,long,double,boolean

其中boolean不能转化为任何数据类型。

整型,字符型,浮点型可以相互转换,遵循以下规则:

1.   容量小的类型自动转化为容量大的类型,数据类型按容量大小排序为:

byte、short、char àint à longà floatàdouble

2.   byte、short、char不可以相互转换,它们3者在运算时首先转化为int类型。

3.   容量大的数据类型转化为容量小的数据类型时,需要进行强制转换,但可能造成精度降低或者溢出,需要慎重。

4.   有多种数据类型进行运算时,系统首先自动将所有数据转化为容量最大的类型,然后再进行运算。

5.   实数常量默认为double(如:5.6)

6.   整数常量默认为int(如:123)

 

说了这么多规则,读者可以思考一下以下代码有没有问题:

byte b1=1;

byte b2=2;

byte b3=b1+b2;

byte b4=129;

看到这里可能很大一部分读者并不会认为这段代码有问题,但是到eclipse去敲一下它你会发现3、4行会编译报错,这里请注意上面第二条规则,byte在运算时是先变成int之后再进行运算的,而int的容量比byte的容量大,所以这里要进行强制转换,第三行代码改为:

byte b3=(int)(b1+b2);

同理char和short也是一样的

至于第四行java中byte的取值范围为-128~127,将129改为这中间的数就好了。

再来看一个经典的例子:

long l=8888888888;

这里也会编译报错,很多读者会有疑问为什么会编译报错?8888888888并没有超出long的范围啊,其实这里需要注意的是8888888888是一个int类型的数据,而此时int已经装不下这个数了,所以不会自动转化成long,此时只需要在8888888888后面加一个字母l就可以了,代表它是long类型的。

还有一个很常见的错误:

float f=1.23;

这里相信大多数都知道,1.23为double类型的,需要强制转换或者在后面加个f。


最后还要提醒一下各位读者,当java中涉及到float类型的运算时一定要注意是否要强转,例如:

float f1=1.2f;

float f2=123;

float f3=f1+f2*0.3;

这里由于0.3是double类型的,需要进行强制转换,要注意这些细节。

以上是博主关于基本类型转换的一些看法,欢迎指正。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值