I**********a 发帖数: 1183 | 1 linked list remove duplicates,第一个保留,其余都删。
因为不是sorted, 所以我说要一个hashset记录是否是duplicates。
码完了,追问code中做remove的那一步: pre.next = cur.next; 问那cur node怎么办
? 我说node还在,只是不在list里了。 他说memory leak了怎么办? 当时太紧张,蒙
了,刷题的时候从没管过这茬。 应该怎么改code?
还有更好的解法吗? 谢谢 |
k***a 发帖数: 1199 | 2 c++的话delete一下不就完了?java的话不用管
【在 I**********a 的大作中提到】 : linked list remove duplicates,第一个保留,其余都删。 : 因为不是sorted, 所以我说要一个hashset记录是否是duplicates。 : 码完了,追问code中做remove的那一步: pre.next = cur.next; 问那cur node怎么办 : ? 我说node还在,只是不在list里了。 他说memory leak了怎么办? 当时太紧张,蒙 : 了,刷题的时候从没管过这茬。 应该怎么改code? : 还有更好的解法吗? 谢谢
|
l******s 发帖数: 3045 | 3 Java和.net应不需要考虑,JRE or CLR will take care,不过如果作为知识点,这两种
平台都可以进行显式的Gabage collection.
Java is System.gc()
.Net is GC.Collect() |
I**********a 发帖数: 1183 | 4 lesson learned. Thank you!
【在 l******s 的大作中提到】 : Java和.net应不需要考虑,JRE or CLR will take care,不过如果作为知识点,这两种 : 平台都可以进行显式的Gabage collection. : Java is System.gc() : .Net is GC.Collect()
|
c****p 发帖数: 6474 | 5 能手动删掉的时候为啥要用GC呢?
【在 l******s 的大作中提到】 : Java和.net应不需要考虑,JRE or CLR will take care,不过如果作为知识点,这两种 : 平台都可以进行显式的Gabage collection. : Java is System.gc() : .Net is GC.Collect()
|
l******s 发帖数: 3045 | 6 .net有个IDisposable Interface,实现Dispose后并调用其的才是真正的“从内存删掉
”,否则没有,在.net CLR中,Set null并没有真正删掉,这是出于性能考虑。
Java应该也有类似的概念。
【在 c****p 的大作中提到】 : 能手动删掉的时候为啥要用GC呢?
|
u*******o 发帖数: 405 | 7 Dispose也没法从内存里删掉。User没有办法把某个managed object从内存里删掉,只
有GC可以。
【在 l******s 的大作中提到】 : .net有个IDisposable Interface,实现Dispose后并调用其的才是真正的“从内存删掉 : ”,否则没有,在.net CLR中,Set null并没有真正删掉,这是出于性能考虑。 : Java应该也有类似的概念。
|
l******s 发帖数: 3045 | 8 是的,好长时间不看模糊了记忆。dispose的作用只是把引用从flist里去除,方便gc的
工作,谢谢指正。
【在 u*******o 的大作中提到】 : Dispose也没法从内存里删掉。User没有办法把某个managed object从内存里删掉,只 : 有GC可以。
|
c****p 发帖数: 6474 | 9 这么设计背后的理念是什么?以性能为代价把程序员从回收内存这种繁琐的工作中解放
出来?
【在 u*******o 的大作中提到】 : Dispose也没法从内存里删掉。User没有办法把某个managed object从内存里删掉,只 : 有GC可以。
|
T****U 发帖数: 3344 | 10 Java调用System.gc()也没有什么用,系统还是等到它觉得需要清理的时候才清理。
Java只要保证用过的内存没有指针ref,系统就会自己处理了。
【在 l******s 的大作中提到】 : Java和.net应不需要考虑,JRE or CLR will take care,不过如果作为知识点,这两种 : 平台都可以进行显式的Gabage collection. : Java is System.gc() : .Net is GC.Collect()
|