静态变量在类的所有实例之间共享。(使用“ new”运算符创建一个实例。)
在这些示例中;使用静态(实例变量)存储颜色可能不是一个好主意,因为实例之间会相互干扰。该变量应更改为“普通”实例变量。
第二个示例中的最终静态colorModel非常好;它是一个不可变的对象(至少接口是不可变的),这些方法非常线程安全,并且可以同时被许多实例使用。
请注意,第一个问题不是“内存泄漏”。您可能会说,这些实例无意间在它们之间泄漏数据,但这不是经典的内存泄漏,在这种情况下,活动对象会无意间保留对“死”对象的引用。
由于某种原因,IF
seriesColors应该为每个创建的实例包含一种颜色。(这可能是一个愚蠢的设计)必须以某种方式同步访问arraylist。但是我认为这超出了范围…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)