Реальный ответ: говорить о эффективности на таком уровне не делает любой смысл.
Имейте в виду, что общая производительность и эффективность Java-программы определяется многими факторами - например, когда/как JIT запускается, чтобы превратить байт-код в машинный код.
Беспокойство по поводу таких тонкостей не поможет вам создать содержательный, ремонтируемый, «хороший OO» дизайн. Heck; в вашем случае, в зависимости от контекста, может быть даже, что компилятор делает постоянным складыванием и превращает все это в println (3) (так как это действительно прямо, чтобы выбросить эти переменные); поэтому, возможно, в обоих случаях компилятор создает тот же самый байт-код.
Не поймите меня неправильно: справедливо спросить/узнать/понять, что делают компиляторы, JVM и JIT. Но: не предполагайте, что вы можете классифицировать вещи, которые легко превращаются в «Более эффективный, чем B».
Разница буквально не имеет значения. –
, если вы беспокоитесь о буквальной наносекундной разнице между этими двумя, вы оптимизируете неправильную вещь ... –
Определите «эффективный». Более быстрое время выполнения? Уменьшить объем памяти? Меньший результат байт-кода? Что-то другое? Когда вы выполняете и просматриваете их, что соответствует вашим критериям? – David