Скучная и интересная попытка поймать вопрос интервью

Java

Ошибки часто вызваны ошибками.Мы думаем, что это очень простые и незаметные базовые знания.Последняя волна набора компании год назад, чтобы сделать технические резервы для проектов после года.Основные новобранцы являются младшими и средними Java-разработчиками, а требований нет.Как сурово,единственный момент,чтобы фундамент был чуть лучше,и этого достаточно,чтобы быстро начать проект. Я нашел в Интернете несколько относительно простых вопросов для собеседования, и результаты оказались ужасающими для одного голоса соискателей, многие из которых проработали более 6 лет.

Давайте посмотрим непосредственно на тему, т.е. вtry catch finallyвставитьreturn, чтобы увидеть порядок возврата, это должно очень часто использоваться при ежедневном написании кода, верно? Это не интервью для постройки авианосца~

Было рассмотрено несколько ситуаций:немногоiНачальное значение0

在这里插入图片描述

1,catchимеютreturn,finallyБудет ли выполняться код?

在这里插入图片描述
Результат, очевидно, выполняется:
在这里插入图片描述

2,catchимеютreturn,finallyТакже естьreturn, как реализовать?

在这里插入图片描述
Результаты показывают, чтоfinallyсерединаreturnбыло бы лучше, чемcatchсерединаreturnвыполнить первым
在这里插入图片描述
Первые две общие проблемы не большие, дальше смотрим вниз

3.catchсерединаreturnПеременная,finallyВычислите переменную, каков результат возврата?

在这里插入图片描述
По обычной логике, ввести 0, после ++i вернуть 1 не проблема!
在这里插入图片描述

блять, что?0?

iприсвоить начальное значение0, введите после перехвата исключенияcatch,catchвнутриreturn, но послеfinally, сначала выполнитьfinallyв, даi+1=1,Потомreturn. Тотreturnда1? На самом деле нет1, но0.Почему?

在这里插入图片描述

можно ясно видетьi=1; но возврат действительно0? Это означает, что это я не другойi, который возвращаетсяiЭто не тоi.

Поскольку это передача значения, перед выполнением возврата копия i резервируется со значением 0, а затем, наконец, выполняется.После final, когда он возвращает, это не текущий i, а зарезервированный. что равно 0. Таким образом, возвращаемый результат равен 0.

4.catch,finallyв то же времяreturnпеременная, каким должен быть возвращаемый результат?

在这里插入图片描述

еслиfinallyимеютreturnне пойдетcatch

在这里插入图片描述

Суммировать:

  • существуетcatchимеютreturnв случае,finallyСодержимое по-прежнему будет выполняться, и оно будет выполняться первымfinallyСноваreturn.

  • Следует отметить, что если возврат является примитивным типом данных, тоfinallyСодержимое не влияет на возвращаемое значение. потому что вернулсяfinallyВыполнить копию, сделанную ранее.

  • когдаcatchиfinallyимеютreturnчас,returnдаfinallyзначение .

В статье по гидрологии нет содержания золота, сводка базовых знаний, надеюсь, она будет вам полезна


Небольшие преимущества:

Обратите внимание на мой официальный аккаунт, ответьте [666], сотни различных технических электронных книг пересылаются друг другу,тсс~,бесплатноДайте это всем, никакой рутины, чтобы получить это самостоятельно