Получи случайную криптовалюту за регистрацию!

Java Interview Tasks

Логотип телеграм канала @java_interview_tasks — Java Interview Tasks J
Логотип телеграм канала @java_interview_tasks — Java Interview Tasks
Адрес канала: @java_interview_tasks
Категории: Блоги
Язык: Русский
Количество подписчиков: 2.70K
Описание канала:

Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.
Автор канала - @alexzelentsov
По рекламе обращайтесь: @alexzelentsov , @Vatrusha_ksu

Рейтинги и Отзывы

3.67

3 отзыва

Оценить канал java_interview_tasks и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

2

2 звезд

0

1 звезд

0


Последние сообщения 5

2022-05-25 13:28:51
807 viewsAlexander Zelentsov, 10:28
Открыть/Комментировать
2022-05-25 13:28:51 Какой из методов будет работать быстрее?
798 viewsAlexander Zelentsov, 10:28
Открыть/Комментировать
2022-05-24 17:00:49 Ещё новость - завтра будет новый вопрос. Готовьтесь
925 viewsAlexander Zelentsov, 14:00
Открыть/Комментировать
2022-05-24 16:42:22 Обещал привести пример метода parseCatch для продакшена
Реализация зависит от конкретной логики приложения, которое использует этот метод
Общие вещи:
private Integer parseCatchProd(String s) {
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) {
return null;
}
}
такой вариант не подойдет, потому что мы будем терять exceptions, которые тут будут потеряны
Поэтому можно сделать, например, так:

private Integer parseCatchProd(String s) {
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) {
log.error(e.getMessage(), e);
return null;
}
}

Далее: null возвращать обычно не самая хорошая идея, можно вернуть Optional
или какое-нибудь дефолтное значение, например, -1
Кроме того, возможно вообще не нужно делать catch внутри этого метода, если, например, у вас где-то уровнем выше обрабатываются уже такие ошибки
Как вариант, можно сделать так (если вам не очень критична производительность):

private Optional parseCatchProd(String s) {
try {
return Optional.of(Integer.parseInt(s));
} catch (NumberFormatException e) {
log.error(e.getMessage(), e);
return Optional.empty();
}
}

Если это не так придется, как всегда, пожертовать чем-то, например, best practice:)
943 viewsAlexander Zelentsov, 13:42
Открыть/Комментировать
2022-05-19 10:49:18 Свежая конфа по джаве (выложены записи докладов):

Java, Cloud, Data, AI, Robotics, Programming Languages, Security, Architecture, Developer Practices and Culture

https://youtube.com/playlist?list=PLKuh52zVrL6n_LKPLZN_n2tdYjACndZmB
1.1K viewsAlexander Zelentsov, edited  07:49
Открыть/Комментировать
2022-05-18 11:46:49 Всем привет.
Экспресс ответ к последнему вопросу про catch/if.

Для негативного варианта (когда приходит невалидная строка) все просто - каждый раз создаётся exception, а это дорогая операция, так как надо создать объект со стек трейсом. Результаты говорят сами за себя.
Результаты позитивного сценария говорят о том, что if хоть и срабатывает каждый раз, но большого оверхеда не вносит.

Выводы: почти всегда лучше вариант с if, кроме случая, когда у вас очень мало запросов с валидными строками (например, меньше 5%)

Код, который использовался в вопросе не стоит рассматривать как идеальный-супер-продакшен код, он сделан таким, что бы убрать ненужные для измерений действия, которые могут вносить оверхед в результаты.

Так же хочу сказать, что мне написало много людей с вопросами, когда будут новые посты, поэтому решил продолжить выкладывать новые вопросы и другой релевантный контент тут, не смотря на большую нехватку времени. Всем спасибо кто дочитал.
1.2K viewsAlexander Zelentsov, 08:46
Открыть/Комментировать
2022-02-24 19:15:41
Как вы считаете, на сколько медленнее parseIf, чем parseCatch в случае валидной строки (например "1232133141")?
Anonymous Quiz
26%
меньше чем на 3%
26%
примерно на 10%
24%
примерно на 50%
24%
примерно на 100%
429 voters2.2K viewsAlexander Zelentsov, 16:15
Открыть/Комментировать
2022-02-24 19:13:46
Как вы считаете, на сколько быстрее parseIf, чем parseCatch в случае невалидной строки (например "1232133141w")?
Anonymous Quiz
48%
примерно в 5 раз
29%
примерно в 50 раз
14%
примерно в 100 раз
8%
больше чем в 500 раз
396 voters2.1K viewsAlexander Zelentsov, 16:13
Открыть/Комментировать
2022-02-24 18:54:43
Проблемы , которые могут быть в коде из прошлого поста: 1) код не компилируется: возвращаемый тип должен быть не void, а Integer 2) параметр s может быть null, можно добавить проверку 3) строка s может быть не приводима к int, например, “12we” или ”111111…
1.9K viewsAlexander Zelentsov, 15:54
Открыть/Комментировать
2022-02-20 13:12:28 Проблемы , которые могут быть в коде из прошлого поста:
1) код не компилируется: возвращаемый тип должен быть не void, а Integer
2) параметр s может быть null, можно добавить проверку
3) строка s может быть не приводима к int, например, “12we” или ”11111111111111111111111”, в обоих случаях метод выбросит эксепшен, и тут надо выбрать вариант, как обработать такие ситуации:
[0] ничего не делать, возможно, это приемлемое поведение для вашего случая (например: у вас обработка исключений уже продумана в коде, который вызывает данный метод)
[1] проверять входной параметр s в начале метода, перед вызовом parseInt
[2] обернуть вызов parseInt в try-catch
Вариант [1] лучше тем, что в процессе работы не создаётся эксепшен, так как создание эксепшена-тяжелая операция
Вариант [2] может быть лучше, если параметр s почти всегда валидное для int значение, тогда мы экономим на проверке из варианта 1
То есть надо отталкиваться от того, насколько вам важен перформанс в конкретном случае и какие данные приходят на вход в метод.

В следующих постах посмотрим насколько тяжелая операция “throw exception” с точки зрения перформанса и приведу конкретные измерения для разных вариантов
2.6K viewsAlexander Zelentsov, 10:12
Открыть/Комментировать