关于赋值为null的一点疑问,高分求教 我的看法是将句柄a的值设为null,即不指向任何对象。从理论上讲,是可以gc了。不知道大家有什么不同看法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本来a是指向刚new的一个Object这时把a指向了null,那么Object对象没有谁引用了,gc就可以收集它了 Object a=new Object();表示在内存堆里创建一个对象,由系统显示划分出一段内存,然后加载对象到内存空间,同时句柄a内的指针指向那段内存的地址,然后你就可以操纵内存中的对象.Object a;a=null;表示在内存栽里创建创建一个Object类型的句柄(实际是一指针),而将指针的初始值赋为NULL,即不指向任何对象.JAVA可以允许空句柄的存在,即一个句柄可以先在载中创建,而没有实际的对象实体与之关联;但JAVA不允许孤立的对象实体存在,如果存在,编译器不会报错,但程序运行时,这样的对象就归垃及清理器处理了。 这么说a=null;实际上只是将句柄a的值设为null并非将a所引用的Object设为null了?谢谢各位! 是的- a是一个引用, 指向内存中的一个对象- 这个对象不一定只被a一个引用所指向,比如,它可能正被10个引用所指向- a=null只是将a这个引用指向null(可以看作是一个特殊的对象),这样, a就不再指向原来的对象了,这时,可能只有9个引用指向原来哪个对象了- 如果一个内存中对象失去了所有的引用,则可能会被GCed了原来有10个人都爱林青霞,后来其中一个人转而爱王菲了,这样,只有9个人在爱林青霞了嘻嘻 多谢hahaha88(忧郁的眼神,稀嘘的胡子喳),可惜分已经给过了,有机会再补吧 杨辉三角问题2 关于JScrollPane滚动面板的问题 JAVA SWING 问题 简单问题,请进!! 关于类结束的花括号后到底应不应该有“;” 程序哪些地方写错了会导制JAVA的Virtual Machine 死机? 新手问题,求各位帮帮忙! 菜鸟求救 面试时总有人要我谈谈uml,我一无所知,应说说点什么可以过关? 看看程序,帮帮忙改改错1 Serializable?使用和意思?在thinking in java里面看了半天一天也没有明白什么意思!谢谢高手大虾了 请教有关SunJava的问题
这时把a指向了null,那么Object对象
没有谁引用了,gc就可以收集它了
表示在内存堆里创建一个对象,由系统显示划分出一段内存,然后加载对象到内存空间,同时
句柄a内的指针指向那段内存的地址,然后你就可以操纵内存中的对象.
Object a;
a=null;
表示在内存栽里创建创建一个Object类型的句柄(实际是一指针),而将指针的初始值赋为NULL,
即不指向任何对象.JAVA可以允许空句柄的存在,即一个句柄可以先在载中创建,而没有实际
的对象实体与之关联;但JAVA不允许孤立的对象实体存在,如果存在,编译器不会报错,
但程序运行时,这样的对象就归垃及清理器处理了。
a=null;
实际上只是将句柄a的值设为null
并非将a所引用的Object设为null了?
谢谢各位!
- a是一个引用, 指向内存中的一个对象
- 这个对象不一定只被a一个引用所指向,比如,它可能正被10个引用所指向
- a=null只是将a这个引用指向null(可以看作是一个特殊的对象),这样,
a就不再指向原来的对象了,这时,可能只有9个引用指向原来哪个对象了
- 如果一个内存中对象失去了所有的引用,则可能会被GCed了原来有10个人都爱林青霞,后来其中一个人转而爱王菲了,这样,只有9个人
在爱林青霞了嘻嘻
可惜分已经给过了,有机会再补吧