public static void main( String[] args ) { 
  Integer a = new Integer(10); 
  Integer b = new Integer(10); 
  Integer c = a; 
  int d =10; 
  double e = 10.0; 
  public static void main(String[] args){
      System.out.println(d==10.0)//输出结果为true,为什么为"true",是进行了自动类型转换了吗?如果进行类型转换了,那么都在什么情况下会进行类型转换(除了+-*/外),另外能再介绍一下自动装箱吗?
  }

解决方案 »

  1.   

    byte->(int=char)->long->float->double
      

  2.   

    d==10.0
    int型的d和double型的10.0(java中好像默认小数是double型的)比较的时候,会自动把较小的int转化成较大的double进行比较,所以答案是为true。
      

  3.   

    自动包装 是一种编译器行为 就是将原始类型转换成相关对象类型的行为 可以这样理解:
    public void println(boolean bl){
    Boolean nbl = new Boolean(bl);
    println(nbl);
    }

    public void println(Object bl){
    if(bl instanceof String){
    println((String)bl);
    }else{
    println(bl.toString());
    }
    }

    public void println(String str){
    //.....打印到输出流
    }
    不知道我理解错误没有
      

  4.   

    byte-> (int=char)-> long-> float-> double同意!在比较前做了转换了!