public class ex { /**
* @param args
*/
String str=new String("Hi!");
char[] ch={'l','i','k','e'};
public static void main(String[] args) {
// TODO Auto-generated method stub
ex ex_1=new ex();
ex_1.change(ex_1.str, ex_1.ch);
System.out.print(ex_1.str+" ");
System.out.print(ex_1.ch);
}
public void change(String str,char ch[])
{
str="How are you";
ch[1]='u';
}}
str的值怎么没有被修改啊
结果为什么不是How are you luke
* @param args
*/
String str=new String("Hi!");
char[] ch={'l','i','k','e'};
public static void main(String[] args) {
// TODO Auto-generated method stub
ex ex_1=new ex();
ex_1.change(ex_1.str, ex_1.ch);
System.out.print(ex_1.str+" ");
System.out.print(ex_1.ch);
}
public void change(String str,char ch[])
{
str="How are you";
ch[1]='u';
}}
str的值怎么没有被修改啊
结果为什么不是How are you luke
String str = "HI";
char[] ch={'l','i','k','e'}; public static void main(String[] args) {
ex ex_1=new ex();
ex_1.change(ex_1.str, ex_1.ch);
System.out.print(ex_1.str+" ");
System.out.print(ex_1.ch);
}
public void change(String str,char ch[]){
this.str="How are you";
ch[1]='u';
}}
1、change方法里的str没有意义
2、本程序整个没有意义 该程序的用意就是再测试 String的这个特点!
s = s + "hello";那么意思就是内存里面有2个String的对象,一个是""变成垃圾,一个是"hello"被s重新指向?
String是final型的,也就是说它在创建了之后里面的值是不会改变的,当你在对其进行操作时,内存会再重新分配内存来存放新生成的值,而原来内存中的值不变
如果楼主想要得到想要的结果,建议使用StringBuffer