Выведется: bye (с переводом строки). Почему: при выполнении `return` в блоке `try` сам возврат откладывается — сначала обязательно выполняется блок `finally`, затем метод возвращает управление. Если в `finally` есть свой `return`, он переопределит прежний, а если `finally` бросит исключение, оно заменит возврат. Блок `finally` не выполнится лишь при завершении JVM (например, `System.exit`) или аварийном завершении.
bye
(с переводом строки).
Почему: при выполнении `return` в блоке `try` сам возврат откладывается — сначала обязательно выполняется блок `finally`, затем метод возвращает управление. Если в `finally` есть свой `return`, он переопределит прежний, а если `finally` бросит исключение, оно заменит возврат. Блок `finally` не выполнится лишь при завершении JVM (например, `System.exit`) или аварийном завершении.