HankLee67 2017-03-29 12:20 采纳率: 33.3%
浏览 865

新手求教java中类型转换问题

public class Test14
{
public static void main(String[] args)
{
int i=5;
double d=5.0;
boolean b1=(i==d);
System.out.println(b1);
char c='a';
long l=97l;
boolean b2=(c==l);
System.out.println(b2);
boolean b3=true;
boolean b4=false;
boolean b5=(b3==b4);
System.out.println(b5);

}
}
上面的代码输出结果为:true、true、false不太理解。
i为int类型,且为5,d为double类型,且为5.0,为什么在进行比较是否相等时尽然是相等的,是在比较的过程中i自动升级类型成double类型了吗?
同理是字符c和long长整型。
为什么会输出来结果为true,而不是false?java里面哪些运算符在进行互相运算时会自动升级类型?

  • 写回答

3条回答 默认 最新

  • zhglance 2017-03-29 12:27
    关注

    int与其他类型运算时,如long,double等,默认转换为long、double进行比较。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题