一些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
------解决方案--------------------
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?
一开始没注意invoked这个词,以为答案是5...
"Fred ", "47 "是常量,在编译期就会放入常量池,所以不包括在此题中..
s + “47”;
s.substring(2, 5);
s.toUpperCase();
会各自生成一个新对象,所以产生了3个
s.toString();返回的是本身,不会产生新对象
个人理解
[解决办法]
路过学习收藏
[解决办法]
我选C,C用的1.4.2
[解决办法]
do such problem is BT.
[解决办法]
jimmyshao(杰米) 讲解的好,我同意你的String类的理解
不过小弟的英语超级的菜,麻烦解释以下invoked的含义
[解决办法]
题2的回答:
你是用short y=6;编译器默认short为int型,所以输出为int。
------------
如果你把上面的赋值语句改为Short y=6;y作为Short类的实例,则会输出short。
[解决办法]
ls的没说清楚吧
“你是用short y=6;”
“如果你把上面的赋值语句改为Short y=6;”
有区别吗??晕
[解决办法]
C
A
[解决办法]
chszs(老刀)说的很清楚了。
定义为“short y=6;”的时候,因为short不匹配方法中的Short,所以系统会自动扩展,首先扩展为基本类型Int,检测一次,存在这种方法,则返回相应值。
而定义为“Short y=6;”的时候,已经存在相应的方法,就不会进行扩展。
“short y=6;”与“Short y=6;”不是同一个东西。前一个是基本类型,后一个是对象
[解决办法]
路过学习收藏
[解决办法]
FA
[解决办法]
路过学习收藏