Согласен с jAndy. Я просто хотел добавить пример и, надеюсь, дать еще один пример.
Первый подход намного быстрее.
Каждый раз, когда мы вызываем подстроку, нам нужно будет запустить строку и создать новый объект подстроки, на котором будет работать в будущем. Мы должны запустить метод и создать новую подстроку, которая явно более дорога.
Подумайте об этом таким образом. Вы могли бы что-то сделать (это стоит того же количества, что и другой вариант, если сказать x) один раз, или сделать это x теоретически неограниченным временем. Вы смотрите на стоимость x против бесконечности.
В теории вы потенциально занимаете меньше памяти во втором. Var b будет содержать некоторую память (зависит от языка) в java, строка занимает 8 байтов. Это будет сохраняться до закрытия программы. Вместо этого, если вы подстроки каждый раз вы создадите значение, а затем очистите его, как только он больше не будет использоваться.
Это имеет смысл?
Мы создаем наш var b и сохраняем его до тех пор, пока программа не будет закрыта (больше не требуется). Или мы можем создать переменную a.substring, но удалим ее, когда она больше не нужна. Технически в зависимости от того, как работает программа, у вас может быть меньше памяти, если вы сказали 100 из них в течение всего процесса. Однако используемая память незначительна, и сбор мусора не происходит достаточно часто (в обычных условиях), чтобы это действительно было правдой/релевантным.
Экономия памяти незначительна, а временная сложность сравнительно значительна.
Пример А намного выше. Почему вы в реальной жизни когда-либо делаете то же самое много раз, если можете выполнить это, выполнив это только один раз?
Можете ли вы рассказать о своих собственных рассуждениях, чтобы мы могли помочь вам лучше? С какого контекста/почему вы спрашиваете об этом? Как вы думаете, что будет делать betteR? – Tai
Большое спасибо. – rokyed