我更喜欢将static
字段用于不将状态存储在字段而不是匿名内部类中的类的实例。sort
如果方法(或其他)经常调用,我认为这是减少内存和 GC 使用的好习惯。但是我的同事更喜欢在这种情况下使用匿名内部类,说 JIT 会优化它。
class MyClass {
//non fields of class
/*access modifier*/ final static Comparator<MyClass> comparator = new Comparator<MyClass>(){
public compare(MyClass o1, MyClass o2){
//comparing logic
}
}
}
用法示例(我更喜欢):
List<MyClass> list = ...;
Collection.sort(list, MyClass.comparator);
用法示例(我的同事更喜欢):
List<MyClass> list = ...;
Collection.sort(list, new Comparator<MyClass>(){
public compare(MyClass o1, MyClass o2){
//comparing logic
}
});
1. openJDK 中使用匿名内部类优化?
2.请告诉我这个案例的好做法。