解决方案 »

  1.   

    (a<5)?10.9:9 首先会编译不通过,这个题目稍微给你扩展下:
    public float get() {
      int a = 5;
      return a>5?10.9:9; 
    }
    你说这个方法的返回值是9还是9.0 ,如果返回类型是int的话,10.9那里也会报告错误,编译不通过
      

  2.   

    根据答案的解释,我想这道题的原型是这样的:public class Test {
    public static void main(String[] args) {
    int a = 5;
    System.out.println(a<5 ? 10.9 : 9);
    }
    }关键在a>5 ? 10.9 :9段代码,就是答案所解释的那样。
    Java在进行多种数据类型混合运算的时候,会进行自动转换,转化遵循一定的规则,其中一条就是“容量小的类型自动转换成容量小的类型”,本例中有int,double,所以在运算的过程中,首先将5转换成5.0,将9装换成9.0,然后进行运算,结果为9.0
      

  3.   

    老问题了
    http://bbs.csdn.net/topics/240008091
    看4楼和12楼