Java эффективность анонимных классов

Есть ли разница в эффективности (например, время выполнения, размер кода и т. Д.) Между этими двумя способами?

Ниже приведены надуманные примеры, которые создают объекты и ничего не делают, но мои реальные сценарии могут заключаться в создании новых потоков, прослушивателей и т. Д. Предположим, что следующие циклы кода выполняются в цикле, чтобы это могло иметь значение.

Использование анонимных объектов:

void doSomething() {
    for (/* Assume some loop */) {
        final Object obj1, obj2; // some free variables

        IWorker anonymousWorker = new IWorker() {
            doWork() {
                // do things that refer to obj1 and obj2
            }
        };
    }
}

Определение класса первым:

void doSomething() {
    for (/* Assume some loop */) {
        Object obj1, obj2;
        IWorker worker = new Worker(obj1, obj2);
    }
}

static class Worker implements IWorker {
    private Object obj1, obj2;
    public CustomObject(Object obj1, Object obj2) {/* blah blah */}

    @Override
    public void doWork() {}
};

Ответы на вопрос(6)

Ваш ответ на вопрос