永发信息网

下列java代码为什么上机输出的是”苹果“而不是“苹果好吃”??

答案:3  悬赏:50  手机版
解决时间 2021-02-01 16:27
public class EE {public static void main (String[]args){
String str =new String("苹果");
modify(str);
System.out.println(str);
}
public static void modify(String s){
s=s+"好吃";
}
}
最佳答案
哈哈,这牵涉到两个java的知识,一个是引用,一个是字符串常量池。String在java中虽然是引用传递,但是java对String做了优化,就是多个内容相同的字符串在内存中实际上只有一份,他们共享一段存储空间,所以为了安全,在修改一个字符串的时候实际上是重新开辟了一段内存。所以这里如果想得到 "苹果好吃" 的话需要像其他值传递的数据类型那样采用接收返回值的方式。
全部回答
你没有改变str的引用地址,当然还是苹果 再看看别人怎么说的。
你需要把执行结果传出去,程序的执行是先进先出类型的,而且字符串指向的是一个内存地址,你看起来是s=s+"好吃"的s 与外界的s并不是同一个指针,当你的方法执行完毕后,资源全都会被释放,外面是怎么样还是怎么样,并不会改变。 应该改成public static String mod(String s){return s+"好吃";} 然后外面是s=mod(s);就行了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
托马斯学习馆(荆州沙市区)地址好找么,我有些
下列关于环境标准的说法,错误的是()。A.国
食用菌一定长在朽木上吗?没可能长在土里??
江南舞蹈艺术培训地址有知道的么?有点事想过
程仪的意思是什么啊?知道的请说下!
曾参字什么
【形容落叶的诗句】求描述、形容落叶的词语、
正义能量圣契部落
最近学厨、我想知道怎么翻锅、转锅、勺子和锅
联通用户不用的手机卡注销问题!!!
在RT三角形ABC中,角C=90°,S=18根号3,斜边上
荑手的意思是什么啊?知道的请说下!
微信订阅号能不能实现微信自动登录
单选题Computers________processdifficultp
冒险岛SF要怎么安装啊?
推荐资讯
翼城县家畜防治站地址好找么,我有些事要过去
皮肤黑能不能穿藕粉色的大衣
关于学前教育的口号
三明境内最大的河流是DA. 尤溪B. 金溪C. 九龙
菜鸟驿站(重庆花千树二期店)怎么去啊,我要去
地下城勇士北京1区有没有人能免费借个号玩玩4
单选题下列各自然条件中,对交通线路分布的影
蛋民的意思是什么啊?知道的请说下!
矩阵中为什么矩阵的迹就是特征值的和为
win7开机时出现很多的字母 怎么解决
东西半球的划分界线是20°W和160°E两
老古城前街社区居委会地址有知道的么?有点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?