Java自动类型转换与强制类型转换

自动类型转换
  • 自动类型转换: 容量小的类型自动转换成为容量大的数据类型。(注意: 是容量小的转换为容量大的,而不是所占空间小的转换为占空间大的)
        如:long与float做运算时,long要转换为float,虽然long占8个 字节,而float占4个字节,但float的数据容量比long大。
 
数据类型按容量大小排序为:
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
  • byte,short,char 之间不会互相转换,他们三者在计算时首先转换为 int 类型。 (包括同种类型的计算,比如byte a1 = 1;byte a2 = 2;则a1+a2属于int类型 )  
  • boolean类型不能与其他数据类型运算。
  • 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。
对于常量和变量之间的数据类型自动转换:
对于常量来说:
  • 整数,比如1,2等等,其默认的数据类型为 int
  • 浮点数,比如1.23,12.3等等,其默认的数据类型 double
所以当用变量和常量进行计算时,要把数据类型设置为更高类型:
    例:float a1 = 12.3f;
            float a2 = a1+2.3;(这句话是错误的,因为2.3默认是double类型,而float的类型比double低,所以报错)
 
 
 
强制类型转换
 
    强制类型转换: 自动类型提升的逆运算,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:(),但可能会造成 精度降低或溢出
例:double a1 = 12.3;
  float a2 = (float)a1;则此时就可以将a1的值赋给a2,并且没有精度的降低。
 
    通常,字符串不能直接转换为基本类型,但通过基本类型对的包装类则可以实现字符串转换为基本类型。
    如: String a = “43”; inti= Integer.parseInt(a);
 
    boolean类型不可以转换为其他的数据类型。
 
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值