论坛首页 招聘求职论坛

一道郁闷的面试题

浏览 33061 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-06-08  
javastudy 写道
抛出异常的爱 写道


此方法可改变这个对象的属性
怎么看也不是值传递。。。


实质不是传值吗
楼上语文考试多少分?不会比我还少吧。。
0 请登录后投票
   发表时间:2007-06-08  
在C里面有两种传递
传值,与传址,
由于java号称没有指针,
所以不能叫传址引用,所以翻译为传引用。。。。

本质上传的是地址ID
不知道这样说你能不能明白。

传值是指你对其所作改变不对对原属不产生影响。
传址是指你对其所作属性改变对其它引用以此类的程序会有影响
(如果影响了你又没注意到出的BUG很难找,
这才是为什么传值与传引用区分开的最终目的)
如果没有区别为什么会考你呢?
0 请登录后投票
   发表时间:2007-06-08  
我认为你已经成功的把大多数人都转迷糊了  包括本来已经明白一些的人
0 请登录后投票
   发表时间:2007-06-08  
简单说:是别人还能不能用。。。能用都是引用。。。
0 请登录后投票
   发表时间:2007-06-08  
ken1984 写道
翻译惹的祸啊,看看C/C++里面吧,用一个&就一目了然了;扯远了,:(,JAVA的对象都是传引用,但基本类型包括Integer,String等都是传值。只要记住这些就OK啦。


Integer,String 也是传引用的。
对于非基础类型的对象,大家通过属性赋值可以改变对象的属性值,因此比较容易理解是传引用的。但对于基础类型,并没有什么属性值可以让你改变,通常都是直接构造一个新的基础类型对象赋值给参数,这样新值属于内部重新构造的对象,参数指向了新的对象,而方法外的变量仍然指向原先的对象。这种做法当然不会影响方法外的相应对象了。方法内对参数重新赋值是不能改变方法外相应基础类型变量值的,因此很多人就误以为方法参数如果是基础类型就是传值的了。
0 请登录后投票
   发表时间:2007-06-08  
面试的时候让做了一个权限设计 就两个小时 还得先下载环境配置
0 请登录后投票
   发表时间:2007-06-08  
hexiaodong 写道
ken1984 写道
翻译惹的祸啊,看看C/C++里面吧,用一个&就一目了然了;扯远了,:(,JAVA的对象都是传引用,但基本类型包括Integer,String等都是传值。只要记住这些就OK啦。


Integer,String 也是传引用的。
对于非基础类型的对象,大家通过属性赋值可以改变对象的属性值,因此比较容易理解是传引用的。但对于基础类型,并没有什么属性值可以让你改变,通常都是直接构造一个新的基础类型对象赋值给参数,这样新值属于内部重新构造的对象,参数指向了新的对象,而方法外的变量仍然指向原先的对象。这种做法当然不会影响方法外的相应对象了。方法内对参数重新赋值是不能改变方法外相应基础类型变量值的,因此很多人就误以为方法参数如果是基础类型就是传值的了。


在用户层面来说,传一个参数,如果内部可以修改它的值,那就是传引用,反之就是传值了。Integer,String你试下传个参数给方法修改它的值,然后在方法外面再打印值,肯定还是未修改前的值。如果是重新构造一个对象,那怎么能叫引用呢?
0 请登录后投票
   发表时间:2007-06-08  
一个式子是老师给我们讲传引用时用的。

异常 dosomthing(传入参数1,传入参数2,传出参数1,传出参数2,传入传出参数,传入传出参数);


返回值为此方法运行的是否正常,有哪些非正常
我问到:
传出参数?为什么会有传出参数,他怎么出来的?
之后就是一堂传值与传引用的课。。。。

PS:新手一定要看这一讲(不是java程序)
0 请登录后投票
   发表时间:2007-06-09  
ken1984 写道
hexiaodong 写道
ken1984 写道
翻译惹的祸啊,看看C/C++里面吧,用一个&就一目了然了;扯远了,:(,JAVA的对象都是传引用,但基本类型包括Integer,String等都是传值。只要记住这些就OK啦。


Integer,String 也是传引用的。
对于非基础类型的对象,大家通过属性赋值可以改变对象的属性值,因此比较容易理解是传引用的。但对于基础类型,并没有什么属性值可以让你改变,通常都是直接构造一个新的基础类型对象赋值给参数,这样新值属于内部重新构造的对象,参数指向了新的对象,而方法外的变量仍然指向原先的对象。这种做法当然不会影响方法外的相应对象了。方法内对参数重新赋值是不能改变方法外相应基础类型变量值的,因此很多人就误以为方法参数如果是基础类型就是传值的了。


在用户层面来说,传一个参数,如果内部可以修改它的值,那就是传引用,反之就是传值了。Integer,String你试下传个参数给方法修改它的值,然后在方法外面再打印值,肯定还是未修改前的值。如果是重新构造一个对象,那怎么能叫引用呢?


是的,Integer和String不能在方法内改变他们的值,是因为Integer和String没有提供能够改变值的方法,但这并不说明是传值的。


0 请登录后投票
   发表时间:2007-06-09  
Integer 传引用 int 传值  Integer 原始类型包装类 int原始类型 概念统一好交流:)
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics