Java问题
答案:6 悬赏:70
解决时间 2021-01-15 02:45
- 提问者网友:我是女神我骄傲
- 2021-01-14 11:20
Java问题
最佳答案
- 二级知识专家网友:街头电车
- 2021-01-14 11:28
changestr改变的是局部引用
public class Simple {
public static String changestr(String str){
str="welcome";
return str;
}
public static void main(String[] args) {
String str = "1234";
str = changestr(str);
System.out.println(str);
}
}
public class Simple {
public static String changestr(String str){
str="welcome";
return str;
}
public static void main(String[] args) {
String str = "1234";
str = changestr(str);
System.out.println(str);
}
}
全部回答
- 1楼网友:不想翻身的咸鱼
- 2021-01-14 15:44
删除public static void main(String[] args) {
String str="1234";
String str="1234";
- 2楼网友:旧脸谱
- 2021-01-14 14:48
不管是什么结果,你这种编程的方式是不可取的,如果你想改变str的值可以使用返回值由str接收;如果只想取一个固定值的话,直接使用final常量或枚举。
- 3楼网友:梦中风几里
- 2021-01-14 14:33
你如果把 str 设置为 全局变量,他就会变成 welcome, 你这样2个方法中的 str 不是一个变量了。 所有你在 ChangeStrDemo 方法里赋的值, 尽管你调用了ChangeStrDemo ,也不会改变main 方法里的 str 的值, 希望能帮助到你。
- 4楼网友:天凉才是好个秋
- 2021-01-14 13:28
因为你在changestr中对str进行了重新赋值
所以会覆盖以前的str值
所以会覆盖以前的str值
- 5楼网友:人類模型
- 2021-01-14 12:45
String 是java中的基本类型,他当做函数参数的时候,传入的是值而不是对象的引用,所以当你调用changestr(str);的时候,相当于另外建立了一个字符串对象,并且把str的值赋值给此对象,再将此对象传入函数里,所以函数里操作的并不是你在外面new出来的字符串str。System.out.println(str);你打印的时候还是外面的str,所以值还是1234
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息