社区
C#
帖子详情
将一个list清空和赋值null到底有什么区别
jobsoo
2011-11-28 03:12:09
List<string> list=....
list.Clear();
list=null;
对于内存释放等有什么区别?
...全文
971
7
打赏
收藏
将一个list清空和赋值null到底有什么区别
List list=.... list.Clear(); list=null; 对于内存释放等有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stonespace
2011-11-28
打赏
举报
回复
不过调用list.Clear();会减轻GC.Collect方法的负担,使其能更快完成清除内存的工作,所以如果元素很多,我会三句都写:
list.Clear();
list=null;
GC.Collect();
但GC.Collect();通常会消耗很多时间,所以如果数组元素不多的情况没必要直接调用GC.Collect,让系统在它感到不适的时候自动调用GC.Collect为好,
qldsrx
2011-11-28
打赏
举报
回复
不用了,就设置为null,如果还要new一个使用,那不如Clear了继续用得好。因此单独比较内存释放是没有意义的,要看具体场合用具体的功能。
另外在局部变量时,离开作用域自动释放,相当于赋值null,因此一般很少有人会特意使用这个null的。
stonespace
2011-11-28
打赏
举报
回复
=null还没有立刻把内存清掉,要调用GC.Collect();才会清掉内存,
Clear方法和=null差不多,也不会马上把内存清掉,直到GC.Collect()调用为止(如果你不调用的话系统会在适当的时机调用)
[Quote=引用 4 楼 jobsoo 的回复:]
=null 是把占用的内存直接清掉了吗?
那种方式能更快的把内存清空掉
[/Quote]
jobsoo
2011-11-28
打赏
举报
回复
=null 是把占用的内存直接清掉了吗?
那种方式能更快的把内存清空掉
幕夜
2011-11-28
打赏
举报
回复
[Quote=引用 2 楼 zyloveyrf 的回复:]
list=null;
list.Clear();只是清空了内容 在内存上它还是占有空间 而=null 就是不占用内存空间
[/Quote]+1
萧炎
2011-11-28
打赏
举报
回复
list=null;
list.Clear();只是清空了内容 在内存上它还是占有空间 而=null 就是不占用内存空间
jobsoo
2011-11-28
打赏
举报
回复
那个能更快的释放内存
Power Query For Excel数据处理利器(高级篇)
数据源的获取函数Table高级函数
List
列表高级函数Record记录高级函数日期函数时间函数正则表达式应用网页抓取函数
把
list
清空
和
赋值
null
对内存释放的
区别
List
<string>
list
=....
list
.Clear();
list
=
null
; 一般看法:
list
=
null
;能更快的释放内存,
list
.Clear();只是
清空
了内容 在内存上它还是占有空间,而=
null
就是不占用内存空间 大佬看法:=
null
还没有立刻把内存清掉,要调用GC.Collect();才会清掉内存, Clear方法和=
null
差不多,也不会马上...
清空
list
与对
list
赋
null
把
list
清空
和
赋值
null
对内存释放的
区别
所以如果元素很多,做法通常是这样的:
list
.Clear();
list
=
null
; GC.Collect(); 但GC.Collect();通常会消耗很多时间,所以如果数组元素不多的情况没必要直接调用GC.Collect, 让系统在它感到不适的时候自动调用GC.Collect为好。 ...
java-
List
<String>
list
被
赋值
null
后,应该使用
list
==
null
或者
list
!=
null
来判断
List
findResult=new Array
List
(); 如果在这里判断findResult.size()是没有问题的,返回值为0 findResult=
null
;//这里
赋值
后 1. 如果使用findResult.isEmpty()来判断会报异常 2. 如果使用findResult.size()来判断会报异常
list
集合的clear方法和
null
、与““的
区别
在使用
list
结合的时候习惯了
list
=
null
;在创建这样的方式,但是发现使用
list
的clear 方法很不错,尤其是有大量循环的时候
list
.clear()与
list
=
null
区别
java中
list
集合通过clear()方法
清空
,只会将
list
中的对象变成垃圾回收
清空
,但是
list
对象还是存在 但是通过
list
=
null
后,不仅列表中的对象变成了垃圾,为列表分配的空间也会回收,什么都不做与
赋值
NULL
一样, 说明直到程序结束也用不上列表
list
了,它自然就成为垃圾了.clear()只是清
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章