锁定老帖子 主题:obj使用后赋值null讨论
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-16
zhufeng1981 写道
bo_hai 写道
和大家讨论一下,下面代码的输入结果是:
import java.util.ArrayList; import java.util.List; public class ParamValue { public static void main(String[] args) { List<TestObject> objs = new ArrayList<TestObject>(); TestObject obj = null; for (int i = 0 ;i < 3; i++) { obj= new TestObject(); obj.setName("yihaodian"+String.valueOf(i)); objs.add(obj); // obj 设置成 null obj = null; } for (TestObject testObject : objs) { testObject.showInfo(); } } } class TestObject { private String name; public void showInfo() { System.out.println(this.getName()); } public String getName() { return name; } public void setName(String name) { this.name = name; } } 请大家在没有运行程序前,写出答案。明天给出结果
帅哥,你的画图工具是什么,看起来很不错啊 |
|
返回顶楼 | |
发表时间:2011-11-16
楼主应该想说空指针的问题
|
|
返回顶楼 | |
发表时间:2011-11-16
caoxudong818 写道
zhufeng1981 写道
bo_hai 写道
和大家讨论一下,下面代码的输入结果是:
import java.util.ArrayList; import java.util.List; public class ParamValue { public static void main(String[] args) { List<TestObject> objs = new ArrayList<TestObject>(); TestObject obj = null; for (int i = 0 ;i < 3; i++) { obj= new TestObject(); obj.setName("yihaodian"+String.valueOf(i)); objs.add(obj); // obj 设置成 null obj = null; } for (TestObject testObject : objs) { testObject.showInfo(); } } } class TestObject { private String name; public void showInfo() { System.out.println(this.getName()); } public String getName() { return name; } public void setName(String name) { this.name = name; } } 请大家在没有运行程序前,写出答案。明天给出结果
帅哥,你的画图工具是什么,看起来很不错啊 这个很明显是PowerPoint |
|
返回顶楼 | |
发表时间:2011-11-16
caoxudong818 写道
zhufeng1981 写道
bo_hai 写道
和大家讨论一下,下面代码的输入结果是:
import java.util.ArrayList; import java.util.List; public class ParamValue { public static void main(String[] args) { List<TestObject> objs = new ArrayList<TestObject>(); TestObject obj = null; for (int i = 0 ;i < 3; i++) { obj= new TestObject(); obj.setName("yihaodian"+String.valueOf(i)); objs.add(obj); // obj 设置成 null obj = null; } for (TestObject testObject : objs) { testObject.showInfo(); } } } class TestObject { private String name; public void showInfo() { System.out.println(this.getName()); } public String getName() { return name; } public void setName(String name) { this.name = name; } } 请大家在没有运行程序前,写出答案。明天给出结果
帅哥,你的画图工具是什么,看起来很不错啊 就是ppt |
|
返回顶楼 | |
发表时间:2011-11-16
对象都是指针形的变量对于对象,所以,obj=null只是把obj所指向的对象的地址值变成null,而数组中的那个reference依然有效指向实际对象内存地址。
很简单就能理解一下,你再第一个循环粒 obj= new TestObject(); 和最后的Ob=null,你自己已经把答案都写出来了。 |
|
返回顶楼 | |
发表时间:2011-11-16
我想知道你们是怎么发图片的?为什么下面会有个图片附件?还有为什么有些同学可以提供下载的?
JAVAEYE有没有使用教程的? 还有楼上的话没有明白,读不通顺呀。 |
|
返回顶楼 | |
发表时间:2011-11-16
最后修改:2011-11-16
说说我的理解吧。跟楼主一样的意思。
<script> var a = 3; var b = a; a = 4; alert(b);//3 </script> <script> var a={num:3}; var b=a; a.num=4;; alert(b.num);//4 </script> <script> var a={num:3}; var b=a; a = {num:4};; alert(b.num);//3 </script> |
|
返回顶楼 | |
发表时间:2011-11-16
LZ以为是 TestObject& obj;
C搞多了 |
|
返回顶楼 | |
发表时间:2011-11-16
a = 一个地址(A1);
b = a; a = 另外一个地址(A2); 实际的意思就是,b拿了一个地址A1,后面a拿了另外一个地址A2. 除非a直接在A1做操作,否则b是不会受到影响。 |
|
返回顶楼 | |
发表时间:2011-11-16
明白了引用的概念,就没啥东西可说
|
|
返回顶楼 | |