1.public class Test {
2. public static void changeStr(String str0){
3. str0="welcome";
4. }
5. public static void main(String[] args) {
6. String str="1234";
7. changeStr(str);
8. System.out.println(str);
9. }
10.}
2. public static void changeStr(String str0){
3. str0="welcome";
4. }
5. public static void main(String[] args) {
6. String str="1234";
7. changeStr(str);
8. System.out.println(str);
9. }
10.}
楼主【xyter】截止到2008-07-26 15:04:23的历史汇总数据(不包括此帖):
发帖的总数量:2 发帖的总分数:20 每贴平均分数:10
回帖的总数量:13 得分贴总数量:5 回帖的得分率:38%
结贴的总数量:1 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:20
结贴的百分比:50.00 % 结分的百分比:0.00 %
无满意结贴率:0.00 % 无满意结分率:---------------------
楼主加油
String str="1234"时在栈中定义一个字符串变量指向于字符串对像“1234”,
而执行changeStr(str)时, 把字符串“1234“的引用传给了str0,但
由于字符串是不可变长度的,因此,str0="welcome";时,str0指向了另一个
字符串“welcome”,而原始的仍然没变。
StringBuffer是可变长字符串。public class T {
public static void changeStr(StringBuffer str0){
str0=str0.append("welcome");
}
public static void main(String[] args) {
StringBuffer str=new StringBuffer("1234");
changeStr(str);
System.out.println(str);
}
}
2. public static void changeStr(String str0){ 创建changeStr方法,并接收一个参数到str0中
3. str0="welcome"; 给str0赋值
4. }
5. public static void main(String[] args) { 主方法Main
6. String str="1234"; 定义String 对象str,并且给他赋值
7. changeStr(str); 调用changeStr方法
8. System.out.println(str); 打印出str的内容
9. }
10.}
貌似讨论过好多次了
涉及了String的不变性
传递String类型的时候,就是传基本类型.(因为是String 类中的value属性).
public static void changeStr(String str0){
// str0=("welcome");
str0=str0.concat("welcome");
System.out.println(str0);//打印出1234welcome
}
public static void main(String[] args) {
String str=new String("1234");
changeStr(str);
System.out.println(str); //打印出1234
}
} //讨论String 的不变性public class T2 {
public static void changeStr(StringBuffer str0){
str0=str0.append("welcome");
System.out.println(str0) //打印出1234welcome
}
public static void main(String[] args) {
StringBuffer str=new StringBuffer("1234");
changeStr(str);
System.out.println(str); //打印出1234welcome
}
} //讨论StringBuffer可变性
2. public static void changeStr(String str0){
3. str0="welcome";
4. }
5. public static void main(String[] args) {
6. String str="1234";
7. changeStr(str);
8. System.out.println(str);
9. }
10.}
-----------------------------
changeStr(str)的执行过程:
str0=str; //将str0的引用地址赋值为str一样,都指向常量"1234"
str0="welcome"; //将str0的引用地址赋值为常量"welcome"的地址这个过程中并没有改变str的引用地址,再者,str所指向的对象本身内容没有改变,所以会输出"1234"