三道java的选择题,麻烦大家了。

5、下面代码片段创建()个对象。答案:Binta=10;Stringb="abc";Stringc=newString("abc");MyTesttest=newMyTe... 5、下面代码片段创建()个对象。答案:B
int a = 10;
String b = "abc";
String c = new String("abc");
MyTest test = new MyTest();
A 4 B 3 C 2 D1

8、阅读下面代码,myMethod被调用时,正确的输出结果是()。答案:C
public class MyPoint {
public void myMehtod() {
int x = 5, y= 3;
System.out.print("(" + x + ", " + y + ")");
switchCoords(x,y);
System.out.print("(" + x + ", " + y + ")");
}
public void switchCoords(int x,int y){
int temp;
temp = x;
x = y;
y = temp;
System.out.print("(" + x + ", " + y + ")");
}
A (5,3)(3,5)(3,5)
B (5,3)(5,3)(5,3)
C (5,3)(3,5)(5,3)
D 编译出错

24、阅读下面代码,运行输出()。答案:A
String space = " ";
String composite = space + "hello" + space + space;
composite.concat("world");
String trimmed = composite.trim();
System.out.println(trimmed.length());
A5 B6 C8 D13
展开
 我来答
百度网友66d722a
2011-06-23 · TA获得超过1166个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:228万
展开全部
你是要解释是吧:
1>
Java机制中有给8个包装类以及String类初始化9个对象池。
第一个语句是基本数据类型,所以根本没有创造对象。
第二个语句从String池里构造了一个“abc”对象
第三个语句在在堆栈中通过new的方式构造了一个新的"abc"对象
第四个语句在堆栈中构造了一个MyTest对象

2>你要明白传入的形参x,y都是基本数据类型,所以他们是值传递,而不是址传递,传递给SwitchCoords方法时,内部将x,y的值互换了,但是在myMethod里面x,y的值并没有发生变化。
因为他们是基本数据类型,是值传递。所以结果是5,3,3,5,5,3
3>这题也好理解,concat(str)函数的意思是将传入的str拼接到当前字符串的末尾,但是注意composite.concat("world")之后并未把结果重新赋值给composite,所以composite的值还是执行这个语句之前的值,然后执行trim()方法之后,把composite字符串的所有空格去掉,在赋值给trimmed。结果就是hello.所以字符串的长度是5

以上是个人的分析,希望能够帮助你,如果还有不懂的可以继续交流,谢谢
零的干脆
2011-06-23 · 超过11用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:33.5万
展开全部
String c = new String("abc");//创建两个对象
MyTest test = new MyTest();//创建一个对象

第一次输出(5,3)这个毫无疑问,调用switchCoords(x,y)方法时,传入参数5和3,并在方法里执行了数据交换,输出(3,5),执行完方法后,再次输出时也是(5,3)。因为switchCoords(x,y)这个方法是通过传参的方式把x和y传进去,而且x与y并非为静态对象,只有在此方法里,x与y的值才互换。这一题主要考作用域

这一题会给人一个误导。concat()方法是把对应字符串拼接到结尾。但是composite.concat("world")这一句,拼接后并未赋值给composite,所以下面一句composite的值还是跟String composite = space + "hello" + space + space;这一句所得的值一样。去除前后空格之后composite的值是hello再赋值给trimmed,所以trimmed的长度应该为5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jj1552714
2011-06-23 · TA获得超过291个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:127万
展开全部
1.String c = new String("abc");其中c是一个引用对象,还有一个abc对象
String c = new String("abc");字符串池中已经有了abc,所以不会再创建,二十直接取,所以不会创建对象
MyTest test = new MyTest();这个很明显就一个对象。
所以第一题选择B

第二题:

因为x和y属于局部变量,在调用switchCoords方法之后其值不会改变,x和y只是复制了一份相同的值到switchCoords方法中,但是在switchCoords方法中x和y又交换了值,故会选择C

第三题: 楼上的两位答的都很好,这里我就不说了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式