日期:2014-05-20  浏览次数:20612 次

一个JAVA类型转换的问题?
3.   int   x=4;     (B)(已在JDK验证)
System.out.println( "value   is   "   +((x> 4)?99.9:9));
A、9     B、9.0       C、99.9       D、99

为什么输出是9.0而不是9




------解决方案--------------------
B B A
回答完毕!
------解决方案--------------------
3. int x=4; (B)(已在JDK验证)
System.out.println( "value is " +((x> 4)?99.9:9));
A、9 B、9.0 C、99.9 D、99
---------------------------------------------------
((x> 4)?99.9:9)进行运算时,因为99.9是double,所以将表达式结果也转成double型。

7.是B

12.是带命令参数执行MyTest.class,public static void main(String[] args)中的args[]存放的就是命令参数,所以args[0] = "x ",args[1] = "y ",这题选A
------解决方案--------------------
第一个问题:
因为在题目中出现了99.9,所以数据类型会自动的由低级向高级转换,所以输出的是9.0,而不是9。
第二个问题:是java的垃圾回收机制,记住就行了。
第三个问题:这是java的一个动态传递参数的机制,格式为java + 文件名 +参数1 +参数2 +....
当你想引用动态传递的参数时,用args[0],args[1],args[2]...即可引用到相对应的参数了。
说的不好,不知道你是否理解了。
------解决方案--------------------
我还有点模糊.
------解决方案--------------------
首先:肯定编译过不了
其次:值传递和址传递的区别,值传递主要用于基本类型,比如这里的整形
再次:String的不变性,改变时,它重新在其它地方创建了新的字符串

------解决方案--------------------
java里都是值传递