当前位置:  技术问答>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.我对交换直这里一直不清楚,请高手详解,谢谢!

|
对不起,我说错了,都是按引用传递。
public static void swap(String name[]) ,传递的是数组的引用,因此对其中内容的修改是有效的。也就是说交换了name[0],name[1]所指向的字符串。

public static void swap(String name0,String name1) 传递的也是引用。
但只改变了方法内部变量的指向,不会影响到外部变量。

|
期待回答

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3