锁定老帖子 主题:一道郁闷的面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-23
昨天去一家公司面试,面试了这样一道java题 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 我的答案是:值传递 但是,面试官说他是 引用传递 但是我在搜索google看到: 46、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 对了,忘了,还有一道: 能不能有一个char类型的变量来存放一个中文字?? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-23
文字游戏
现在翻译得乱七八糟的 理解的也是乱七八糟的 如果直接用英文定义来说会好一些 反正我的理解是引用传递 看后面的说明 更是引用传递的 引用传给方法 方法改变引用的值 再把引用传回来 特别是里面还有这句“参数的值就是对该对象的引用”为什么还要叫他“值传递”呢 直接叫引用传递不就得了 要说明的是 基本类型和obj的传递是不同的 char能放中文 |
|
返回顶楼 | |
发表时间:2007-05-23
char可以的说。。
此方法可改变这个对象的属性 怎么看也不是值传递。。。 下回再怎么问都说是传引用。。。 因为答案为传引用的面试题比例高太多了。。 面试问这些啊。。。 你是否是新手? |
|
返回顶楼 | |
发表时间:2007-05-23
是呀。
|
|
返回顶楼 | |
发表时间:2007-05-23
我在javaeye中看到此题,我也回帖说“值传递和引用传递有很大争议。但我还是认为是引用传递。”,可是,,我以为是我回答是很软懦资,我回答是错误的。哎,所以以为是值传递。哎,所以,我觉得还是自己学的不精。(但,我觉得不应该javaeye里传递一些误人的东西,因为,我相信javaeye的势力)
|
|
返回顶楼 | |
发表时间:2007-05-23
值传递和引用传递有很大争议。但我还是认为是引用传递。
如果没用特别的模式。 只有8+1是传值的。。用传值的方式去思考程序。 |
|
返回顶楼 | |
发表时间:2007-05-23
很简单 你做一个test好了
不要让他把值return回来 做一个void方法 把map给他 然后在方法里改变 你在外面会看到map的值有变化 这就是因为给他的只是这个map的引用 如果是值传 外面的map应该不变吧 另外说明 基本类型是值传 你传一个String过去 如果不return的话 外面的String是不会变的 |
|
返回顶楼 | |
发表时间:2007-05-23
抛出异常的爱 写道 值传递和引用传递有很大争议。但我还是认为是引用传递。
如果没用特别的模式。 只有8+1是传值的。。用传值的方式去思考程序。 老手可以说是 值传递 因为所有的参数传递都是传地值 新手应该回答 引用传递 区分primite和object的传递,当然object不能是不变模式下的 如String 两种回答所站的角度不一样, 新手回答是第一种不解释就不妙了, 说白了还是要理解, goolge的结果记住了也没用。 byte short int long float double char boolean + String 是这个意思吗? |
|
返回顶楼 | |
发表时间:2007-05-23
传什么无所谓。。。
主要是思考的方法。。。 找到问题的解决方式 你想一鸣惊人也成 但一定要把限定加上。。 比如你说完传值,之后加一句。这个值 是XX在栈中的地址偏移变量。 PS:如果想像传值一样传Object xx可以用 XX.clone()当参数 这样无论怎么改变原实例中的属性都不会有变化 |
|
返回顶楼 | |
发表时间:2007-05-23
试过的 某些clone不会真的出来另一个值 而是出来另一个引用
和原obj指向同一个地方 如果没记错 list套map就不能clone |
|
返回顶楼 | |