匿名内部类的生命周期由其作用域决定:方法局部内部类:仅在创建它的方法范围内有效。构造器内部类:与外部类实例绑定,当外部类实例释放时释放。静态内部类:与外部类同时加载卸载。
Java 匿名内部类的生命周期
匿名内部类在创建后,其生命周期主要受其所在作用域的影响:
- 方法局部内部类:仅在创建它的方法范围内有效。当方法退出时,内部类及其所有成员都会被释放。
- 构造器内部类:在创建外部类实例后,构造器内部类就会生效。当外部类实例被释放时,内部类也会被释放。
- 静态内部类:静态内部类与外部类同时加载。当外部类被卸载时,静态内部类也会被卸载。
实战案例:
创建匿名内部类实现 Comparable
接口:
List numbers = new ArrayList(); // 创建匿名内部类比较器 Comparator comparator = new Comparator() { @Override public int compare(Integer a, Integer b) { return a - b; } }; // 根据比较器排序列表 Collections.sort(numbers, comparator);
在这个例子中,匿名内部类 comparator
用于对 numbers
列表进行排序。由于 comparator
是局部内部类,它只能在创建它的方法范围内使用。当 sort
方法执行完毕,comparator
也会被释放。
以上就是Java 匿名内部类的生命周期是怎样的?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!