Есть небольшая разница.
В первом случае экземпляр попадает в область действия каждого условного блока и имеет право на сборку мусора после его окончания - будет выполнен только один блок.
Во втором случае экземпляр попадает в область видимости внешнего блока и имеет право на сборку мусора после окончания работы внешнего блока.
В любом случае создается только один экземпляр этого класса, хотя, учитывая отсутствие * safetynet else
в первом примере, вы можете вообще не создавать ни одного экземпляра (спасибо @Nexevis).
Это, конечно, не включает в себя возможные утечки или зависимости внутри конструктора класса, инициализации блоков или реализаций методов - что невозможно узнать в данном контексте.
Также нет никаких сообщенийчто делает внешний блок, например, возвращает этот экземпляр вызывающей стороне и т. д.