Java中数据类型默认转换和强制类型转换

默认转换:

a:由低到高一次为:(byte   short    char  )---int ---long ---float --- double

b:注意:byte   short    char  相互之间不互相转化,他们参与运算首先转化为int型

强制类型转换:

格式:目标数据类型   变量  =  (目标数据类型)(被转换数据)

    其中,字符串数据好人其他数据做 +  时,结果是字符串类型, + 在此处为连接符

经典例题:

1、判断 short s1 = 1 ;s1=s1+1;和short  s1 =1   ;s1+=1;区别

        解析:  

  short s1 = 1 ;s1=s1+1;   格式错误

    由于s1+=1运算时会自动提升表达式类型,结果为int型,再赋值给short型时,会报告强制类型转换的错误

  short  s1 =1   ;s1+=1;  格式正确

    由于s1+=1;是规定的运算符,编码器会进行特殊处理;

2、float f= 3.4是否正确?

  解析:

    错误

    精度不准确,应该用强制类型转换,如:float  f  =  (float)3.4 或者 float  f = 3.4 f ;

    在Java中,没有小数点的默认是int 型,有小数点的默认是double

这两道题都是Java面试题,非常基础也非常重要

原文地址:https://www.cnblogs.com/ncl-960301-success/p/7606674.html