本文介绍了弱引用是对一个对象的引用的持有者。使用弱引用后,可以维持对referent的引用,而不会阻止它被垃圾收集。当垃圾收集器跟踪堆的时候,如果对一个对象的引用只有弱引用,那么这个referent就会成为垃圾收集的候选对象,就像没有任何剩余的引用一样,而且所有剩余的弱引用都被清除。弱引用对于构造弱集合最有用。弱引用和弱集合是对堆进行管理的强大工具,使得应用程序可以使用更复杂的可及性方案,而不只是由普通(强)引用所提供的“要么全部要么没有”可及性。...详细
内存泄漏指的是程序员动态分配了内存,但是在使用完成后却忘了将其释放。除了内存泄漏以外,在开发人员自己管理内存的开发中,缓冲溢出、悬摆指针等其它一些内存的问题也时有发生。现在已经有了一些实时监测内存问题的技术。内存泄漏问题可以通过定时地终止和重启有问题的程序来发现和解决。在比较新的Linux内核版本中,有一种名为OOM(Out Of Memory)杀手的算法,它可以在必要时选择执行Killed等程序。悬摆指针可以通过定期对所有已经返还给系统的内存置零来解决。解决内存溢出问题的方法则多种多样。...详细
内存泄漏问题可以通过定时地终止和重启有问题的程序来发现和解决。在比较新的Linux内核版本中,有一种名为OOM(Out Of Memory)杀手的算法,它可以在必要时选择执行Killed等程序。悬摆指针可以通过定期对所有已经返还给系统的内存置零来解决。解决内存溢出问题的方法则多种多样。 事实上,在程序运行时来解决这些问题,显然要麻烦得多,所以我们希望能够在开发程序时就发现并解决这些问题。文中介绍了一些可用的自由软件:垃圾回收器、Memprof、Valgrind。...详细