求教,String问题

尾号0505 2013-07-16 02:42:31
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中是怎么存储的??
...全文
203 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nmyangym 2013-07-16
  • 打赏
  • 举报
回复
方法里的str和类变量str是两个变量。 一开始都指向"good",后来你让方法里的str指向了"test ok",就各自指向了一个字符串。方法里的str和类里的str没有任何关系了。
尾号0505 2013-07-16
  • 打赏
  • 举报
回复
开始是堆中的str指向常量池中的“good”,后来我让str指向“test ok”,但是没变。
a597926661 2013-07-16
  • 打赏
  • 举报
回复
没看明白楼主的问题 牵扯到JVM虚拟机了,楼主要是想研究Java的底层的话还是得多看书啊。 楼上说的看字节码也是必须的 再者即使有大牛来说了怎么存储的也不见得我们就能懂,当然我现在对Java的底层也不是很了解
lcf 2013-07-16
  • 打赏
  • 举报
回复
你要是真的对JVM构造感兴趣,先学会看byte code。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧