Java 谁能帮忙解释一下,以下代码执行后为什b,c,d的值是不变的

[复制链接]
查看11 | 回复3 | 2013-6-8 17:59:59 | 显示全部楼层 |阅读模式
在java中有3个类来负责字符的操作。1.Character 是进行单个字符操作的,2.String 对一串字符进行操作。不可变类。3.StringBuffer 也是对一串字符进行操作,但是可变类。String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承.StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象它只能通过构造函数来建立,StringBuffer sb = new StringBuffer();note...
回复

使用道具 举报

千问 | 2013-6-8 17:59:59 | 显示全部楼层
你讲的问题,主要是java方法参数传递问题,有争论传值、传引用的。 我的理解:基本类型,不影响函数外。因为传的是值。
传的是对像,如果对象重新创建,因为传的是引用,则函数内的地址改变,函数外的地址没变,所以不影响函数外。
如果对像不重新创建对象,因为传的是引用,函数外的引用地...
回复

使用道具 举报

千问 | 2013-6-8 17:59:59 | 显示全部楼层
b,c,d原先的值又不受影响当然不变...在operate(a, b); 这个地方其实也就是x=a; y=b;,进行了参数传递而已...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行