据我了解,在Java(以及Clojure)中使用的默认ClassLoader会保存指向任何匿名类的指针,从而持有lambda和closure。这些对象永远不会被垃圾回收,因此会造成“内存泄漏”。目前正在为Java 7或8(https://blogs.oracle.com/jrose/entry/anonymous_classes_in_the_vm)进行调查,以添加一个匿名ClassLoader,不会保留对这些函数的引用。与此同时,人们如何处理使用这些构造的语言(例如Clojure和Scala)编写长时间运行的应用程序呢?
是否可能Clojure提供自己的匿名ClassLoader,扩展系统ClassLoader,但不保留已创建的类的引用?
是否可能Clojure提供自己的匿名ClassLoader,扩展系统ClassLoader,但不保留已创建的类的引用?