日期:2014-05-20 浏览次数:20884 次
public class D4 { public static void main(String[] args) { int a = 1, b = 2;// 把“;”改为“,” System.out.print(a > b ? a : b); } }
------解决方案--------------------
1,public class D4
{
public static void main(String[] args)
{
int a = 1, b = 2;
int flag = a > b ? a : b;
System.out.println(flag);
}
}
2,浮点数再java里本来就有取余运算。
3,在java虚拟机中char、short、byte都默认成int类型存储,只有当直接赋值的时候会系统直接强转。当赋值运算符后面跟的是表达式时,它就不是直接赋值,所以它要手动的强转。
c=120+11;11和120时常量,在虚拟机中常量的运算是最优先的,也就是还没有运行到c=120+11时,虚拟机就已经把120+11=131运算好了,当运行到c=120+11时直接将131赋值给c ,它也就等同于直接赋值运算。
c=a+b;a和b虽然里面放的是常量,但是a,b只是'a','b'地址的引用,a+b时它不是一个常量,而是一个表达式,它需要人工的强转如:c = (char)(a + b);
同样short也是一样的道理。