中易网

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);
}
}
全部回答
  • 1楼网友:不想翻身的咸鱼
  • 2021-01-14 15:44
删除public static void main(String[] args) {
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值
  • 5楼网友:人類模型
  • 2021-01-14 12:45
String 是java中的基本类型,他当做函数参数的时候,传入的是值而不是对象的引用,所以当你调用changestr(str);的时候,相当于另外建立了一个字符串对象,并且把str的值赋值给此对象,再将此对象传入函数里,所以函数里操作的并不是你在外面new出来的字符串str。System.out.println(str);你打印的时候还是外面的str,所以值还是1234
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息