(1)public static void main(String[] args){
 
           double d2 = add(12.0,15.0);
   
            public static double add(int a,int b){
                    return a+b;
            }
     }
我想问一下,为什么float类型的12.0和15.0可以传到int类型的a,b中去呢,它们之间不需要进行强制转换吗?(2)int[] a={1,2};和int[] a = new int[]{1,2};这两句话到底有什么区别啊?

解决方案 »

  1.   

    关于你的第一个问题
    12.0和15.0并不是float类型而是double类型。
    double d2 = add(12.0,15.0);这句会报错。double到int需要强制转换。
    高精度转低精度 不需要加后缀转换字母、
    低精度转高精度由于可能会造成精度损失所以加标注强转
      

  2.   

    3楼说的没错,第一个是double类型,如果是float类型最后应该加一个f,12.0f和15.0f这种写法。传值类型如果不正确的话,会报出错误。
    第二个是这样的,前者是定义一个数组变量,而后者是实例化一个数组对象。