刚刚学习JAVA,不会的东西还很多,请大家指教了。
public class Ctest{     public  static void main (String [] args)        {            System.out.println(6 + 6 + "aa"+ 6 + 6);        }}

解决方案 »

  1.   

    在混合表达式中,运算符的操作数属于不同的数据类型,运算时通常会将这些操作数转换为同一类型。将操作数的数据类型转换成较高级别的数据类型,称为“类型升级”。在C语言中,数据类型由低到高的顺序是: char<int<long<float<double,而在JAVA中的排例顺序就不大清楚了,但从得出结果来看,string型的级别高于int 型的。由于6+6是同一类型的数据,故此相加得12,接着再+“aa”,所以将12强制转换成字符串型,当然再+6也将转换成字符串型,所以最后为"12aa66"
      

  2.   

    楼上说得都很对,由于是“+”运算,顺序是从左到右,先算 6+6,结果是 12 再将 12 与 "aa" 结合,就变成了 12aa,由于 aa 是个字符串,int 无法与其做加法运算只能做拼接,再后面的只能是字符串拼接了。如果,你需要的输出是 12aa12 的话,只有在后面的 6+6 加上一对括号就可以了,就会优先计算。
      

  3.   

    LS说的都不错  LZ自己想输出什么结果?