一些java试题,有疑惑不解地方,请教.
先发几个,后面还会有.
1 =================================
11. public String makinStrings() {
12. String s = “Fred”;
13. s = s + “47”;
14. s = s.substring(2, 5);
15. s = s.toUpperCase();
16. return s.toString();
17. }
How many String objects will be created when this method is invoked?
A. 1
B. 2
C. 3
D. 4
E. 5
F. 6
------解决方案--------------------2 ========================
这个还勉强可以理解,看了答案以后,
11. public class Yikes {
12.
13. public static void go(Long n) {System.out.println(”Long “);}
14. public static void go(Short n) {System.out.println(”Short “);}
15. public static void go(int n) {System.out.println(”int “);}
16. public static void main(String [] args) {
17. short y= 6;
18. long z= 7;
19. go(y);
20. go(z);
21. }
22. }
What is the result?
A. int Long
B. Short Long
C. Compilation fails.
D. An exception is thrown at runtime.
------解决方案--------------------F C
------解决方案--------------------c c
都编译了
第1个s = s.substring(2, 5);改变了成s= "ed4 ";
第2个不明白 go(z)编译不过去
------解决方案--------------------F A
------解决方案--------------------第一题:F
第二题:A
------解决方案--------------------C A
是SCJP吧 以前看见过
楼上的楼上 你用的是1.5以前的JDK吧 这个事1.5的自动包装的新功能 long会自动包装成Long类
------解决方案--------------------学习。。。什么时候有答案公布?
------解决方案--------------------f a
------解决方案--------------------答案是
C
A
但对第二题的A 不明白为什么,传的是short类型 回打印出int??
------解决方案--------------------第一题 C “Fred”,“47”,及 S。
------解决方案--------------------第一题:“Fred”、“47”、以及4个s
第二题就不是很清楚了,类型转换和参数传递问题,可以做实验
------解决方案--------------------个人认为: 第一题; 产生两个对象 String s= "fred " 产生一个 String s =s+ "47 " 产生一个
后面两个不产生新的对象
第二题:选 C 编译不过去
------解决方案--------------------F
A
------解决方案--------------------1.F
"Fred ", "47 ", "Fred47 ", "ed47 ", "ED47 ",最后一个s.toString()的String 对象所有为6个
2。A
------解决方案--------------------第二个题 你的程序有问题
go(Long n)这个里面的Long ,L要小写
go(Short n)同理,S也要小写
这样的话
结果是:C
short long
------解决方案--------------------jdk1.5的自动装箱
----------------------
编译时 应该先选择基本类型的兼容性 int兼容short 所以不考虑Short
------解决方案--------------------