diff --git a/思考题 b/思考题 new file mode 100644 index 0000000..95ef885 --- /dev/null +++ b/思考题 @@ -0,0 +1,6 @@ +当多个模块共享同一个 List
引用时,会存在多方面风险: +1. 线程安全问题:若多线程同时读写该列表,会出现并发修改异常、数据不一致,甚至数据损坏。 +2. 数据污染:一个模块对列表或内部 Article 对象的修改(如修改 title)会直接影响所有持有该引用的模块,导致数据意外变更。 +3. 封装性破坏:外部代码可直接修改列表结构(add/remove),违背了数据封装原则,难以追踪数据变更来源。 +4. 内存泄漏:若列表被静态或长生命周期对象持有,内部的 Article 对象无法被GC回收,造成内存泄漏。 +建议通过返回不可修改视图、拷贝副本或使用线程安全集合来规避风险。 \ No newline at end of file