星空网 > 软件开发 > Java

对于笔试题

今天朋友问了一个面试题,题目如下:

public class Example{   String str=new String("good");   char[]ch={'a','b','c'};   public static void main(String args[]){     Example ex=new Example();     ex.change(ex.str,ex.ch);     System.out.print(ex.str+" and ");     Sytem.out.print(ex.ch);   }   public void change(String str,char ch[]){     str="test ok";     ch[0]='g';   } } 

   执行结果为 good and gbc ,为啥 str没改变而ch 改变了呢??

   

   下面将粗略画一下程序执行过程中JVM内存情况,来解释为什么为啥 str没改变而ch 改变了

   执行Example ex=new Example();  后没有执行方法change之前的内存情况如图:

对于笔试题
对于笔试题
在执行ex.change(ex.str,ex.ch)后,没有执行 str="test ok"之前时内存情况如下:
 
对于笔试题
在执行完change方法中ch[0]='g'后,方法没有退出之前,内存情况如下:   
对于笔试题
原因已经很明显了。
以上都是个人对程序的理解,如有不对之处请轻喷。。。。



原标题:对于笔试题

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

第三世界崛起的标志是:https://www.goluckyvip.com/tag/64350.html
世界名牌鞋的标志:https://www.goluckyvip.com/tag/64351.html
世界反法西斯战争标志:https://www.goluckyvip.com/tag/64353.html
世界名牌休闲运动鞋:https://www.goluckyvip.com/tag/64357.html
VCS是什么:https://www.goluckyvip.com/tag/6436.html
国际田联400m标准跑道标记方案:https://www.goluckyvip.com/tag/64365.html
最新研究:亚马逊、沃尔玛、Temu和Shein卖家重合率不断攀升:https://www.kjdsnews.com/a/1836554.html
三清山好玩乜?:https://www.vstour.cn/a/365182.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流