问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

这个Java程序为什么输出“good and gbc”

发布网友 发布时间:2024-10-13 14:20

我来回答

4个回答

热心网友 时间:2024-10-19 23:57

这里就涉及到java中的值传递和引用传递的问题咯,

在调用方法的过程中,如果你传入的参数是对象,那么其实实际是引用传递。

所以你在方法体里面将这个引用换成其他引用,是不会对真正的对象产生影响的。

但是只需要记住一个事实就是:

在方法体中对参数进行重新赋值,是不会改变原有的对象的

但是如果是对参数说指向的对象中某个属性进行改变的话,就会产生作用。

public class Example {

    String str = new String("good");

    char[] ch = { 'a', 'b', 'c' };

    public static void main(String args[]) {

        Example ex = new Example();

        ex.change(ex.str, ex.ch);

        System.out.print(ex.str + " and ");

        System.out.print(ex.ch);

    }

    public void change(String str, char ch[]) {

        str = "test ok";//str是一个引用,它指向一个String对象,你这里的赋值操作指示将他指向了另外一个String对象。要注意的是这个方法里面的str变量和你前面定义的类变量虽然名字相同,但他们不是同一个东西哦。

        ch[0] = 'g';//数组引用也是指向一个数组对象,这里操作的是数组对象中的一个元素,所以改变是影响到了那个数组

    }
}

热心网友 时间:2024-10-19 23:56

类似这种问题  分析一下内存  是怎么运行的  就能理解了 ;

在执行 change 方法之前的内存和执行change方法之后的内存情况,我分别画了一下 ,如果还是不明白,那就在接着说咯 


热心网友 时间:2024-10-20 00:03

楼主人研究下变量生命周期就知道了,形参只在方法内有效,你再怎么改变都不影响。
说个通俗的例子:
你家里有一袋包子,你出去上班路上买了一袋包子,走到公司时你把路上买的这袋包子吃了,你家里的包子还在么?

热心网友 时间:2024-10-19 23:59

你想要改变成员变量的值,请在chang的方法str和ch变量前加上this.指出变量的所属。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 新手求教,这个java程序运行结果怎么是这样的? 为什么这个Java程序会有第一句输出。??我感觉应该没有输出才对,这是... 汉字“走”的骨刻文演变过程是怎样的? 不锈钢油烟机如何清洗 会计证取消意味什么 我系湖南学生,目标是550分左右的一本大学,请问有哪些可供参考 喝基漾改善糖化的时候,要戒糖吗? 4000元左右的笔记本,华硕和惠普的那款比较好 4000左右的笔记本,华硕和宏基哪个好一些 买4000左右的笔记本是华硕的好还是宏基的好啊! 4000块,笔记本买华硕好还是联想好? 一个女生对你说她关心你,你和别的女生说话太过暧昧她会有些醋意。 昨天... 假的玻尿酸用了会有什么反应 甲亢会高血压吗 甲亢是怎么引起高血压的 如果打到假的玻尿酸最坏打算是怎样 甲亢性高血压有什么表现 甲亢会引起高血压高吗 有哪些面霜适合40-50 岁的女性使用? 非法行医假玻尿酸会判刑多久 关于Java的一个问题。对于程序的运行结果不理解,怎么会是这样的... 这个java程序怎么输出的是0 赤峰华为供热设施维护有限公司怎么样? 赤峰海达电器里的华为荣耀6能用几年 米兔故事机mini除了帽子,还有别的衣服吗? 我的华为T3060手机电视在呼和浩特能看,到了赤峰就不能用了,总是显示... 赤峰三星手机店卖的I9100多少钱? 赤峰有手机店卖华为U9508的么?或者VIV... 去意大利留学应该买什么保险 ...送孩子到意大利留学,想请教下孩子的意大利的留学医疗保险如何办理好... 宝宝应该怎样进行贴秋膘 秋季给宝宝贴秋膘哪些食物不可少 求百科,这是什么花? 果红裙扁身夜蛾症状 潮起潮落,人聚人散,这就是定律 差旅费包干标准是什么?差旅费包干能否税前扣除? 我们之所以要确立马克思主义的科学信仰,是因为()。 神奇宝贝白金NO.151图签是谁?怎么得到 拱坝布置原则 托海水电站设计特点 坎班贝水电站枢纽布置