锁定老帖子 主题:一道郁闷的面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-08
javastudy 写道 抛出异常的爱 写道 此方法可改变这个对象的属性 怎么看也不是值传递。。。 实质不是传值吗 |
|
返回顶楼 | |
发表时间:2007-06-08
在C里面有两种传递
传值,与传址, 由于java号称没有指针, 所以不能叫传址引用,所以翻译为传引用。。。。 本质上传的是地址ID 不知道这样说你能不能明白。 传值是指你对其所作改变不对对原属不产生影响。 传址是指你对其所作属性改变对其它引用以此类的程序会有影响 (如果影响了你又没注意到出的BUG很难找, 这才是为什么传值与传引用区分开的最终目的) 如果没有区别为什么会考你呢? |
|
返回顶楼 | |
发表时间:2007-06-08
我认为你已经成功的把大多数人都转迷糊了 包括本来已经明白一些的人
|
|
返回顶楼 | |
发表时间:2007-06-08
简单说:是别人还能不能用。。。能用都是引用。。。
|
|
返回顶楼 | |
发表时间:2007-06-08
ken1984 写道 翻译惹的祸啊,看看C/C++里面吧,用一个&就一目了然了;扯远了,:(,JAVA的对象都是传引用,但基本类型包括Integer,String等都是传值。只要记住这些就OK啦。
Integer,String 也是传引用的。 对于非基础类型的对象,大家通过属性赋值可以改变对象的属性值,因此比较容易理解是传引用的。但对于基础类型,并没有什么属性值可以让你改变,通常都是直接构造一个新的基础类型对象赋值给参数,这样新值属于内部重新构造的对象,参数指向了新的对象,而方法外的变量仍然指向原先的对象。这种做法当然不会影响方法外的相应对象了。方法内对参数重新赋值是不能改变方法外相应基础类型变量值的,因此很多人就误以为方法参数如果是基础类型就是传值的了。 |
|
返回顶楼 | |
发表时间:2007-06-08
面试的时候让做了一个权限设计 就两个小时 还得先下载环境配置
|
|
返回顶楼 | |
发表时间:2007-06-08
hexiaodong 写道 ken1984 写道 翻译惹的祸啊,看看C/C++里面吧,用一个&就一目了然了;扯远了,:(,JAVA的对象都是传引用,但基本类型包括Integer,String等都是传值。只要记住这些就OK啦。
Integer,String 也是传引用的。 对于非基础类型的对象,大家通过属性赋值可以改变对象的属性值,因此比较容易理解是传引用的。但对于基础类型,并没有什么属性值可以让你改变,通常都是直接构造一个新的基础类型对象赋值给参数,这样新值属于内部重新构造的对象,参数指向了新的对象,而方法外的变量仍然指向原先的对象。这种做法当然不会影响方法外的相应对象了。方法内对参数重新赋值是不能改变方法外相应基础类型变量值的,因此很多人就误以为方法参数如果是基础类型就是传值的了。 在用户层面来说,传一个参数,如果内部可以修改它的值,那就是传引用,反之就是传值了。Integer,String你试下传个参数给方法修改它的值,然后在方法外面再打印值,肯定还是未修改前的值。如果是重新构造一个对象,那怎么能叫引用呢? |
|
返回顶楼 | |
发表时间:2007-06-08
一个式子是老师给我们讲传引用时用的。
异常 dosomthing(传入参数1,传入参数2,传出参数1,传出参数2,传入传出参数,传入传出参数); 返回值为此方法运行的是否正常,有哪些非正常 我问到: 传出参数?为什么会有传出参数,他怎么出来的? 之后就是一堂传值与传引用的课。。。。 PS:新手一定要看这一讲(不是java程序) |
|
返回顶楼 | |
发表时间:2007-06-09
ken1984 写道 hexiaodong 写道 ken1984 写道 翻译惹的祸啊,看看C/C++里面吧,用一个&就一目了然了;扯远了,:(,JAVA的对象都是传引用,但基本类型包括Integer,String等都是传值。只要记住这些就OK啦。
Integer,String 也是传引用的。 对于非基础类型的对象,大家通过属性赋值可以改变对象的属性值,因此比较容易理解是传引用的。但对于基础类型,并没有什么属性值可以让你改变,通常都是直接构造一个新的基础类型对象赋值给参数,这样新值属于内部重新构造的对象,参数指向了新的对象,而方法外的变量仍然指向原先的对象。这种做法当然不会影响方法外的相应对象了。方法内对参数重新赋值是不能改变方法外相应基础类型变量值的,因此很多人就误以为方法参数如果是基础类型就是传值的了。 在用户层面来说,传一个参数,如果内部可以修改它的值,那就是传引用,反之就是传值了。Integer,String你试下传个参数给方法修改它的值,然后在方法外面再打印值,肯定还是未修改前的值。如果是重新构造一个对象,那怎么能叫引用呢? 是的,Integer和String不能在方法内改变他们的值,是因为Integer和String没有提供能够改变值的方法,但这并不说明是传值的。 |
|
返回顶楼 | |
发表时间:2007-06-09
Integer 传引用 int 传值 Integer 原始类型包装类 int原始类型 概念统一好交流:)
|
|
返回顶楼 | |