当前位置: 技术问答>java相关
scjp(yy2)
来源: 互联网 发布时间:2015-02-19
本文导语: Q8 What is the output of the following code? 1. public class Note { 2. public static void main(String args[]) { 3. String name[] = {"Killer","Miller"}; 4. String name0 = "Killer"; 5. String name1 = "Miller"; 6. swap(name0,name1); 7. Sys...
Q8
What is the output of the following code?
1. public class Note {
2. public static void main(String args[]) {
3. String name[] = {"Killer","Miller"};
4. String name0 = "Killer";
5. String name1 = "Miller";
6. swap(name0,name1);
7. System.out.println(name0 + "," + name1);
8. swap(name);
9. System.out.println(name[0] + "," + name[1]);
10. }
11. public static void swap(String name[]) {
12. String temp;
13. temp=name[0];
14. name[0]=name[1];
15. name[1]=temp;
16. }
17. public static void swap(String name0,String name1) {
18. String temp;
19. temp=name0;
20. name0=name1;
21. name1=temp;
22. }
23. } // end of Class Note
a. Killer,Miller followed by Killer,Miller
b. Miller,Killer followed by Killer,Miller
c. Killer,Miller followed by Miller,Killer
d. Miller,Killer followed by Miller,Killer
答案是c.我对交换直这里一直不清楚,请高手详解,谢谢!
What is the output of the following code?
1. public class Note {
2. public static void main(String args[]) {
3. String name[] = {"Killer","Miller"};
4. String name0 = "Killer";
5. String name1 = "Miller";
6. swap(name0,name1);
7. System.out.println(name0 + "," + name1);
8. swap(name);
9. System.out.println(name[0] + "," + name[1]);
10. }
11. public static void swap(String name[]) {
12. String temp;
13. temp=name[0];
14. name[0]=name[1];
15. name[1]=temp;
16. }
17. public static void swap(String name0,String name1) {
18. String temp;
19. temp=name0;
20. name0=name1;
21. name1=temp;
22. }
23. } // end of Class Note
a. Killer,Miller followed by Killer,Miller
b. Miller,Killer followed by Killer,Miller
c. Killer,Miller followed by Miller,Killer
d. Miller,Killer followed by Miller,Killer
答案是c.我对交换直这里一直不清楚,请高手详解,谢谢!
|
对不起,我说错了,都是按引用传递。
public static void swap(String name[]) ,传递的是数组的引用,因此对其中内容的修改是有效的。也就是说交换了name[0],name[1]所指向的字符串。
public static void swap(String name0,String name1) 传递的也是引用。
但只改变了方法内部变量的指向,不会影响到外部变量。
public static void swap(String name[]) ,传递的是数组的引用,因此对其中内容的修改是有效的。也就是说交换了name[0],name[1]所指向的字符串。
public static void swap(String name0,String name1) 传递的也是引用。
但只改变了方法内部变量的指向,不会影响到外部变量。
|
期待回答
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。