参考答案
结论:内存泄露指已分配内存因引用未释放而无法回收,常见场景多样。核心要点:C++中new/delete不匹配、忘记释放指针或析构函数未清理;Java中静态集合(static Map)长期持有对象、未关闭数据库/IO流、ThreadLocal未remove导致线程池复用残留;监听器和回调未注销;缓存无淘汰策略。原理:垃圾回收仅回收不可达对象,若被意外强引用则泄漏;C++无GC需手动管理。示例:static List cache=new ArrayList();循环add而不清理,老年代堆积引发OOM。预防:使用弱引用、try-with-resources、定期监控堆转储。