论坛首页 入门技术论坛

obj使用后赋值null讨论

浏览 8789 次
该帖已经被评为新手帖
作者 正文
   发表时间: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;
	}
}

 请大家在没有运行程序前,写出答案。明天给出结果 


 

 

帅哥,你的画图工具是什么,看起来很不错啊

0 请登录后投票
   发表时间:2011-11-16  
楼主应该想说空指针的问题
0 请登录后投票
   发表时间: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

0 请登录后投票
   发表时间: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

0 请登录后投票
   发表时间:2011-11-16  
对象都是指针形的变量对于对象,所以,obj=null只是把obj所指向的对象的地址值变成null,而数组中的那个reference依然有效指向实际对象内存地址。

很简单就能理解一下,你再第一个循环粒 obj= new TestObject();  和最后的Ob=null,你自己已经把答案都写出来了。
0 请登录后投票
   发表时间:2011-11-16  
我想知道你们是怎么发图片的?为什么下面会有个图片附件?还有为什么有些同学可以提供下载的?
JAVAEYE有没有使用教程的?

还有楼上的话没有明白,读不通顺呀。
0 请登录后投票
   发表时间: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>
0 请登录后投票
   发表时间:2011-11-16  
LZ以为是  TestObject& obj;


C搞多了
0 请登录后投票
   发表时间:2011-11-16  
a = 一个地址(A1);
b = a;
a = 另外一个地址(A2);
实际的意思就是,b拿了一个地址A1,后面a拿了另外一个地址A2.
除非a直接在A1做操作,否则b是不会受到影响。
0 请登录后投票
   发表时间:2011-11-16  
明白了引用的概念,就没啥东西可说
0 请登录后投票
论坛首页 入门技术版

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