A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 0.Ergou.0 中级黑马   /  2016-6-6 23:31  /  1549 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args){
                String s1 = “abc”;
                String s2 = “xyz”;
show(s1,s2);
System.out.println(s1+”-----”+s2);
}
static void show(String s1,String s2){
         s1 = s2+s1+”Q”;
         s2 = “W”+s1;   
}
a)abc-----xyz
b)xyzabcQ-----xyzWabc
c)xyzabcQ---- xyzabcQWabc
d)xyzQ----Wabc

25 个回复

倒序浏览
学习到了
回复 使用道具 举报
A             是的  选择A                                                            
回复 使用道具 举报
选择是 A

题目解析:
1.看似这道题是一个API中的string题
但是仔细一看他写了一个show方法,但是在show方法中却没有任何的接受字符串的操作
2.如果将show方法调用会出现
s1 = xyzabcQc
s2 =  WxyzabcQ
与其他内容都不匹配
回复 使用道具 举报 0 1
选A    String是不可改变的字符串序列 虽然是引用数据类型 但参数传递的时候  和基本数据类型一样 传递的是值  所以打印的还是原来的s1 s2.
回复 使用道具 举报
回复 使用道具 举报
好像很厉害的样子,感谢分享
回复 使用道具 举报
正确答案是A,但是怎么理解,明明show方法里面已经改变了s1和s2的值,但是打印的结果却是s1和s2原来的值,是因为show方法没有返回类型,或者show方法里面的s1和s1是局部变量,随着show方法的结束也跟着结束的原因吗?
回复 使用道具 举报
果然是A,但是新人表示没学懂
回复 使用道具 举报
学习……
回复 使用道具 举报
正好今天学api
回复 使用道具 举报
A   选择A   那个方法里面的值会随着方法的弹栈而删除
回复 使用道具 举报
a
方法中void不用返回值
回复 使用道具 举报
666666666666666
回复 使用道具 举报
Fangjie 发表于 2016-6-7 13:43
正确答案是A,但是怎么理解,明明show方法里面已经改变了s1和s2的值,但是打印的结果却是s1和s2原来的值, ...

在栈内存中,会先开辟两个个空间存放s1,s2。然后调用show()时会再开辟两个空间存放show中的s1,s2,这和第一次开的空间不相干。然后show调用完后,第二次开的两个空间回收掉,第一次开的两个空间始终在那没有动过。
回复 使用道具 举报
怎么感觉我好像看不懂
回复 使用道具 举报
有点晕...........
回复 使用道具 举报
wy123580 发表于 2016-6-7 10:09
选择是 A

题目解析:

不是这样的吧
回复 使用道具 举报
多多支持 ,  看前面的分析 能涨不少知识.
回复 使用道具 举报
哪里有题的资源,怎么找题
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马