程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 對於筆試題--“good and abc”的理解,goodabc

對於筆試題--“good and abc”的理解,goodabc

編輯:JAVA綜合教程

對於筆試題--“good and abc”的理解,goodabc


今天朋友問了一個面試題,題目如下:

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'後,方法沒有退出之前,內存情況如下:    原因已經很明顯了。 以上都是個人對程序的理解,如有不對之處請輕噴。。。。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved