有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中,匿名内部类型对性能有害吗?

与在某处显式声明匿名内部类型相比,使用匿名内部类型是否对性能(CPU利用率、编译器性能、内存消耗等)有害
我使用的框架要求使用某些继承类,在我的情况下,我只需要一次类,并且为了避免使程序流难以遵循,我希望使用匿名内部类型。“object.SetXclass(新???”将经常调用,并且在任何情况下都需要创建从y继承的对象的新实例

1)显式类声明

class x extends y
{
    @Override
    public void m() { ... };
}

~~

object.SetXclass(new x());

2)匿名内部类型-这对性能有害吗

object.SetXclass(new y()
{
    @Override
    public void m() { ... }; 
});

共 (2) 个答案

  1. # 1 楼答案

    匿名类使您无需为该类命名,并将参数传递给构造函数供以后使用,其工作方式与此相同

    一般来说,当您有一个描述真实测试的概要文件,并且您的测量结果表明您有问题时,您应该担心性能。即使您已经在性能调优系统中工作了几十年,您也可以猜测可能导致问题的原因,但是当您测量代码时,您会发现某些事情(可能有许多事情)要重要得多

  2. # 2 楼答案

    java编译器将匿名内部类编译到它们自己的类文件中,java运行时环境会像对待任何其他类一样对待该类,因此性能不会有任何显著下降。下面是一些关于内部类文件http://docstore.mik.ua/orelly/java-ent/jnut/ch03_13.htm的参考