社区
Java SE
帖子详情
菜鸟问
buptstwyg
2009-09-09 03:28:11
public class test4 {
public static void changeStr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
结果是1234,为什么不是welcome
...全文
311
36
打赏
收藏
菜鸟问
public class test4 { public static void changeStr(String str){ str="welcome"; } public static void main(String[] args) { String str="1234"; changeStr(str); System.out.println(str); } } 结果是1234,为什么不是welcome
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
36 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mint_wei
2009-09-11
打赏
举报
回复
如果有空可以试试
public class test4 {
public static void changeStr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
System.out.println(changeStr(str));
}
}
qq88688868
2009-09-11
打赏
举报
回复
String str="1234";
把他声明称静态的全局变量呢 这样的话就是引用同一块地址空间了
我感觉也可以输出welcome
liujun3512159
2009-09-11
打赏
举报
回复
当然是1234呀
///////////
public class test4 {
public static void changeStr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
其实函数 changeStr(str);
没有改变变量str的值呀
JACKY_fFENG
2009-09-11
打赏
举报
回复
同意一楼
O爱咋咋地O
2009-09-11
打赏
举报
回复
[Quote=引用 19 楼 happyperson 的回复:]
public static void changeStr(String str){
str="welcome";
}
此方法中的str是一个局部变量 只是传值作用。
[/Quote]
你盗用我头像啊!!!!~
O爱咋咋地O
2009-09-11
打赏
举报
回复
调用changeStr()的时候 只是把当前的引用str 赋给了 形参str 也就是说他俩保存的是一样的地址
changeStr函数里 又把形参str 的地址指向了其他地方 但是 主函数里的 str 地址还是保持没变的呀
还是指向原来的 1234
fskjb01
2009-09-10
打赏
举报
回复
晕,全局变量跟局部变量的区别啊,搞什么飞机啊!!!
laopeng2
2009-09-10
打赏
举报
回复
三位一体加业务知识(java,数据库、应用服务器+业务),才是java学习的正道,
http://javadbserver.ucoz.com/
http://javadbserver.free.mingyao.net
24K純帥
2009-09-10
打赏
举报
回复
1L正解,加上return..
qq121199529
2009-09-10
打赏
举报
回复
我是这样理解的,你用changeStr(str); 只是用str新开辟了一个堆内存,可是这样做并没有改变以前的那个堆内存中的数据,所以这样做没起到作用!所以就要用到str=changeStr(str).
羽蓝
2009-09-10
打赏
举报
回复
String是引用类型的。改变的是地址,不是值。
szw880314
2009-09-09
打赏
举报
回复
局部变量的问题
dz007
2009-09-09
打赏
举报
回复
基础类型都是这样,给他赋新的值,他就指向新的那个"welcome"
而不是吧原来的那个值改成"welcome"
wx718
2009-09-09
打赏
举报
回复
改法一:
public class test4 {
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);
}
}
Empty1024
2009-09-09
打赏
举报
回复
String可以说成是一个特殊的原子类型
Y569778402
2009-09-09
打赏
举报
回复
哎一个小问题也被你没说的很复杂
你们很行嘛 嘲笑他人
meng1503159
2009-09-09
打赏
举报
回复
[Quote=引用楼主 buptstwyg 的回复:]
public class test4 {
public static void changeStr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
结果是1234,为什么不是welcome
[/Quote]
结果确实是:1234,因为你在main函数中也定义了一个str变量,当你执行:System.out.println(str);时,这条语句里的str其实是你在main函数中定义str变量。所以显示:1234
happyperson
2009-09-09
打赏
举报
回复
public static void changeStr(String str){
str="welcome";
}
此方法中的str是一个局部变量 只是传值作用。
dajiadebeibei9
2009-09-09
打赏
举报
回复
因为String str="1234"; 是main方法中的局部变量
str="welcome"; 是changeStr中的局部变量
两个相互不影响
java中没有不能传地址 只有值传递
yuhongpingimu
2009-09-09
打赏
举报
回复
wushibuxiaobaibu。
加载更多回复(16)
【通义千
问
菜鸟
集成黄金窗口期】:为什么头部快递公司都在Q3完成对接?3个不可逆的技术拐点曝光
抓住Q3黄金窗口期,高效落地通义千
问
菜鸟
集成。本文解析头部快递公司集中对接的底层动因:大模型推理成本下降、物流语义理解突破、
菜鸟
API标准化升级三大不可逆技术拐点。覆盖智能分单、客服
问
答、异常预警等核心场景,提升履约效率30%+,值得收藏。
为什么你的通义千
问
-
菜鸟
集成总在预发环境崩溃?12类高频异常日志对照表+阿里云SRE团队应急checklist(2024最新版)
快速定位通义千
问
-
菜鸟
集成预发崩溃根因!涵盖12类高频异常日志对照、阿里云SRE应急checklist(2024最新版),专为接入方运维与开发设计,提升故障响应效率。覆盖日志解析、配置校验、依赖验证等关键环节,稳定性保障更可靠,值得收藏。
《
菜鸟
理财100
问
》笔记
人生当自强,努力吧
菜鸟
第一
问
菜鸟
学习第一
问
java:网页源码加密怎么做呢?源码加密了,那么页面还能显示么,不用考虑浏览器的解析
问
题么? java:网页源码加密怎么做呢?源码加密了,那么页面还能显示么,不用考虑浏览器的解析
问
题么? ...
八
问
八答,解剖“
菜鸟
”
马云携“
菜鸟
”网络亮相,又一次给我们勾勒出一幅宏伟蓝图。一个覆盖中国的智能物流网络,未来将能实现中国任何两个城市之间购物的24小时必达。 马云说自己要做平台。大家纷纷议论,在猜想马云下一步要干什么,他的计划充满着令人好奇的矛盾: ——阿里一方面大规模投资,有3000亿元的计划,另一方面却对商业模式表达模糊; ——一方面口口声声说自己绝不做快递,另一方面其投资规模暴露出
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章