日期:2014-05-20  浏览次数:20577 次

求教,String问题
public class Test {

String str= "good"; 
char[]ch={'a','b','c'};

public static void main(String args[]){
Test ex=new Test();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
String s = "abc";
System.out.println();
s="ecd";
System.out.println(s);

}
public void change(String str,char ch[]){ 
str ="test ok";
ch[0]='g';
}
}

这个在JVM中是怎么存储的??
String JVM 存储 C

------解决方案--------------------
你要是真的对JVM构造感兴趣,先学会看byte code。
------解决方案--------------------
没看明白楼主的问题
牵扯到JVM虚拟机了,楼主要是想研究Java的底层的话还是得多看书啊。
楼上说的看字节码也是必须的
再者即使有大牛来说了怎么存储的也不见得我们就能懂,当然我现在对Java的底层也不是很了解
------解决方案--------------------
方法里的str和类变量str是两个变量。
一开始都指向"good",后来你让方法里的str指向了"test ok",就各自指向了一个字符串。方法里的str和类里的str没有任何关系了。