Java для начинающих. Урок 23: StringBuilder

Поделиться
HTML-код
  • Опубликовано: 30 сен 2024
  • МОЙ НОВЫЙ КУРС: • Мой курс "Продвинутая ...
    ПРАКТИКА НА JAVA: java-marathon....
    Реклама и сотрудничество: alishev.neil@gmail.com

Комментарии • 153

  • @alishevN
    @alishevN  6 лет назад +6

    Регистрируйтесь на курс "Продвинутая Java": ruclips.net/video/rRe1vT0SDD8/видео.html
    Практикуйтесь в написании Java кода: java-marathon.tilda.ws

    • @solitarywanderer8571
      @solitarywanderer8571 2 года назад

      StringBuilder sb = new StringBuilder("Hello"); не сработало, но методом тыка получилось с такой записью java.lang.StringBuilder sb = new java.lang.StringBuilder("Hello"); Не знаю, насколько это корректно?!

  • @igoriyification
    @igoriyification 5 лет назад +19

    Все охуенно....но делайте техст больше...к Вам УЖЕ приходят слепые

  • @Fulls_moment
    @Fulls_moment Год назад

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

  • @ilyaLopatin
    @ilyaLopatin Год назад

    Зачем tostring? И без него всё выводит

    • @FerraKube
      @FerraKube Год назад +1

      дак 7 лет назад какая версия java то была?)

  • @MikhailLatypov-n6r
    @MikhailLatypov-n6r Год назад +8

    Спасибо большое, за урок. Очень интересно и познавательно. Единственное, возможно я ошибаюсь. но вызов метода toString() уже не нужен (12:05), так как System.out.println() автоматически его вызывает. Поэтому достаточно написать System.out.println(sb); вместо System.out.println(sb.toString());

    • @DnGJiJ
      @DnGJiJ 7 месяцев назад +1

      Нет, это не так работает. Метод sout(System.out.println()) просто выводит на экран переменную с тем же типом переменной. Вы можете проверить это с помощью метода instanceof, которая проверяет тип данной переменной

  • @ВаняШомнест
    @ВаняШомнест 8 лет назад +58

    Спасибо за еще один отличный урок! Я уверен, что аудитория этого канала должна вырасти.

    • @alishevN
      @alishevN  7 лет назад +4

      Пожалуйста!

  • @ХалкХалкович-щ2э
    @ХалкХалкович-щ2э 4 месяца назад +4

    даже спустя 8 лет видео приятнее всех новых

  • @ruslankolesnichenko6014
    @ruslankolesnichenko6014 6 лет назад +7

    На 9:53 я не понял, что случилось? Сначала говорилось, что удаляет JVM эти строки, которые до конкотенации были, потом "конечно нет". Так запутывает эта поправка.

  • @ettti28
    @ettti28 5 лет назад +14

    Спасибо man. Классно объясняешь. Обязательно возьму твой курс для "не начинающих"..

  • @ВладимирИ-э3щ
    @ВладимирИ-э3щ 2 года назад +2

    StringBuilder sb = new StringBuilder();
    sb.append("улыбок тебе дед мокар");
    sb.reverse();
    System.out.println(sb.toString());
    Хаккерство!)))

    • @genox1331
      @genox1331 Год назад

      ахахахахах

  • @wldzam
    @wldzam 5 лет назад +20

    Крутой чувак. Купил курс Продвинутая Java. Понравилось.Рекомендую.

    • @alekseyfrozis937
      @alekseyfrozis937 5 лет назад +2

      та же история) ох свезло выйти на этого человека! Сейчас досмотрю (повторно, для закрепления) курс для начинающих и приступлю к продвинутой. Успехов нам)

    • @NiflheimForever
      @NiflheimForever 4 года назад

      @@alekseyfrozis937 Как успехи спустя 10 месяцев?

    • @MrNilf
      @MrNilf 3 года назад +3

      @@NiflheimForever ага щас тут все понаписали тебе как они видосиков на ютубе насмотрелись и стали тру жава кодерами

    • @blackteam5273
      @blackteam5273 2 года назад

      @@MrNilf ну тогда поделись секретом как стать Java developer?

    • @MrNilf
      @MrNilf 2 года назад +6

      @@blackteam5273 Как я стал? 8 месяцев по 5 часов в день книги, код, решение задач, ревью кода, ютуб(но заметь я это на последнем месте написал) помимо этого общение в сообществах. Потом еще месяц мок интервью и не только технические. Заработал позвоночную грыжу... 13 собесов -> 8 оферов

  • @yegorivanov3006
    @yegorivanov3006 4 года назад +13

    Благодарю! Шикарные уроки. На практике, конечно, будет веселуха)

  • @dmytrohelbak
    @dmytrohelbak 5 лет назад +5

    И снова привет лучший JavaУчитель!)) Прежде чем приступить к просмотру, ставлю лайк и говорю СПАСИБО!!!
    ...ну а теперь, приступим к уроку.

  • @ГригорийПечорин-е7п

    Т.е. переопределённый х на первоначальное значение не ссылается? x.toUpperCase "превращается" в новое значение?

  • @anton28348
    @anton28348 4 года назад +2

    За такую работу со строками самому языку Java хочется поставить дизлайк конечно...

  • @vitaliyk.6371
    @vitaliyk.6371 6 лет назад +3

    У меня получилось,чтотназвание главного класса и метода объекта были одинаковые.
    Поэтому java не поняла,что я хотел.Я поменял название главного класса на другое и у меня пошло.У меня в этом была проблема.

  • @robertp4603
    @robertp4603 7 лет назад +5

    Если написать System.out.println(sb); программа заработает .... почему тогда писать System.out.println(sb.toString());?

    • @FamilyGames166
      @FamilyGames166 7 лет назад +1

      для возврата к стрингу

    • @Lexoid65
      @Lexoid65 7 лет назад +7

      Действительно, в данном случае можно не вызывать метод toString() для объекта класса StringBuilder, так как этот объект при выводе на экран будет иметь вид строки, который нам и нужен. Другое дело, что для других классов приходится переопределять логику этого метода, так как он будет не совсем корректно отображать объекты в виде строки. Скажу больше, мы могли не писать этот метод хотя бы потому, что он и так вызывается неявным образом при вызове метода System.out.println(). То бишь, даже если мы явно не вызываем метод toString(), для какого бы то ни было объекта, он всё равно будет вызван без нашего участия. Следуя этой логике, можно прийти к выводу, что даже при написании System.out.println(sb); без .toString(), метод .toString() всё равно будет вызываться внутри метода System.out.println(). Вывод: System.out.println(sb); и System.out.println(sb.toString()); это одно и то же (эти 2 строчки полностью эквивалентны).

    • @МаксимШильвян-ж4ы
      @МаксимШильвян-ж4ы 6 лет назад

      Метод print перегружен. Поэтому для разного типа входных параметров у него своя логика. Получая на вход объект он ищет toString, если он не переопределен, то вызывается метод родителя (в конечном счете это Object)а это вывод имени класса и хэшкода разделенные собачкой( если не ошибаюсь)

    • @user-pr2fp7ly1c
      @user-pr2fp7ly1c 2 года назад

      @@МаксимШильвян-ж4ы он не перегружен, просто класс Object при себе имеет метод toString()

  • @АндрейЛысенко-й4ш
    @АндрейЛысенко-й4ш 7 месяцев назад +1

    9:31 То есть, если конкатенируем строки обычным образом, то создаются два новых объекта, так как две операции “+”? Или объект прошлой конкатенации str1+str2 будет удален после того как мы плюсанем +str3 и это удаление будет являться дополнительной операцией, которая была бы нежелательна с точки зрения оптимизации? Или дело не в удалении, а в создании лишнего объекта? Я не совсем понимаю в чем замедление быстродействия происходит по сравнению со СтрингБилдером

    • @DmitryTyukilin
      @DmitryTyukilin 7 месяцев назад

      При каждой конкатенации строк под капотом перегруженного оператора + создается объект StringBuilder и используется метод append, т.е мы прилично загружаем память, когда пользуемся объектом StringBuilder явно, мы создаем объект один раз и пользуемся его функционалом без создания новых объектов.

  • @sasunhakobyan7251
    @sasunhakobyan7251 4 года назад +4

    Читал книгу Шилдта, но ты объясняешь гораздо лучше!! Респект тебе!!!

  • @ruslankoles7648
    @ruslankoles7648 5 лет назад +2

    На 10:55 -10:58 - цитата дословно "т.е. объекты класса String могут изменяться в ходе программы" - оговорка, наверное. Речь об объектах класса StringBuilder? они именно mutable (изменяемые).

    • @alishevN
      @alishevN  5 лет назад +1

      Да, верно

  • @N0llGravity
    @N0llGravity Год назад +3

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

  • @tuRistst
    @tuRistst 7 лет назад +5

    спасибо братан, все очень ясно и понятно, желаю удачи :)

  • @siberian_arg
    @siberian_arg 2 года назад +2

    человек 2 января после нового года записывал виде и выкладывал. респект! )

  • @theantferdy
    @theantferdy Год назад +2

    Спасибо за контент! Стоило бы добавить что StringBuilder внутри работает с массивом байтов и поэтому не создают новые строки в string pool

  • @flawlessvictory9176
    @flawlessvictory9176 Год назад +4

    Лучше Ваших уроков на ютубе не найти. Спасибо!

  • @donttouch5878
    @donttouch5878 3 года назад +1

    посмотрел урок тяжело понимать так как я не давно начал смотреть видео ролики , может поэтому , читаю комменты всем всё понятно а мне нет! либо я тупой либо это люди раньше занимались программированием

  • @vlad_i_mir
    @vlad_i_mir 9 месяцев назад +1

    с Практикума пришел сюда за доп разъяснением))
    спасибо за понятные уроки!

  • @Муракин
    @Муракин 4 года назад +2

    Без toString() выводит норм

    • @oleksandrfesiuk6310
      @oleksandrfesiuk6310 4 года назад

      метод toString() вызывается неявно в System.out.println()

  • @marirazno6117
    @marirazno6117 7 лет назад +8

    обожаю ваши уроки!!! спасибо большое 💜

    • @alishevN
      @alishevN  7 лет назад +3

      Рад стараться :)

    • @DolphinArtem
      @DolphinArtem 2 года назад

      @@alishevN Привет Наиль! Сколько стоит курс?

  • @vitaliyk.6371
    @vitaliyk.6371 6 лет назад +4

    Спасибо за урок!Все работает,все понятно!

  • @НикитаКорнюхин-я6щ
    @НикитаКорнюхин-я6щ 2 года назад +2

    спасибо за проделанный труд!

  • @yusupsm9312
    @yusupsm9312 8 лет назад +2

    Аудитория растет, но к сожалению новых уроков уже нет более 2-х месяцев

  • @victorialeowtos6305
    @victorialeowtos6305 Месяц назад

    раньше всегда искала видео с пометкой 2024*, но этот канал явное доказательство супер полезности и спустя сотню лет)

  • @ВячеславХарламов-е9р

    Спасибо! Отличный урок!

  • @OneMaxBeatz
    @OneMaxBeatz Год назад +1

    Все четко и понятно объясняешь Круто Спасибо

  • @n0stamina
    @n0stamina 4 месяца назад

    Не знаю нужно ли это автору, но я плюс-минус выровнял звук у видоса, могу скинуть, чтобы перезалить спустя 8 лет 😁

  • @homofaber1002
    @homofaber1002 Год назад +1

    Спасибо за курс, все уроки посмотрел с большим интересом.

  • @getteg6468
    @getteg6468 4 года назад +1

    Классная тема этот StringBuilder.

  • @prometeusll4665
    @prometeusll4665 7 лет назад +1

    как подключить несколько проектов в intelij idea? сделай плизз мини урок.

  • @Anatoli-bq1pe
    @Anatoli-bq1pe 2 года назад +1

    Благодарю! Очень полезная информация

  • @kladmonet9
    @kladmonet9 4 года назад +2

    Всё очень внятно и полезно и интересно! Огромная Благодарность!

  • @usafamily4804
    @usafamily4804 2 года назад +1

    Спасибо, как всегда все доступно.

  • @spirridd
    @spirridd 7 лет назад +1

    Супер! Только форматирование кода страдает...

  • @nailovie4235
    @nailovie4235 7 лет назад +2

    Спасибо)Все понятно)

  • @divergenny
    @divergenny 4 года назад +1

    Спасибо большое за разъяснение

  • @ОльгаБажина-щ6я
    @ОльгаБажина-щ6я 6 месяцев назад

    спасибо за уроки! только жаль, что еле слышно голос

  • @rustamergashev3648
    @rustamergashev3648 8 лет назад +3

    Отлично, спасибо!

    • @alishevN
      @alishevN  7 лет назад +2

      Пожалуйста!

  • @Алекс-ю8э2с
    @Алекс-ю8э2с 2 года назад +1

    Огромное спасибо! Супер урок!

  • @vitaliyk.6371
    @vitaliyk.6371 6 лет назад +1

    Ураааа!Пошло,сам затупил.!!!

  • @SvetlanaGarcia
    @SvetlanaGarcia 3 месяца назад

    Спасибо ! 👍

  • @jamjam3337
    @jamjam3337 2 месяца назад

    спасибо!

  • @trrt9756
    @trrt9756 2 года назад

    Здраствуйте, Наиль хочу купить у вас курс, сколько стоит скажите пожалуйста?

  • @objectobj
    @objectobj 2 года назад

    значит, можно и сложить строку с другой, и вывести её за одну инструкцию вывода на экран:
    System.out.println(sb.append("yes").toString());

  • @m-krevolvo7552
    @m-krevolvo7552 4 года назад

    Подскажите,пожалуйста,когда я попытался создать String x = new String(); у меня new String был подсвечен серым цветом,а у вас нет.В чем причина?Заранее благодарю!

  • @АлександрУльдинович-д4з

    без toString() тоже без проблем вывод происходит

  • @LailaIbrahima
    @LailaIbrahima 4 года назад

    StringBuilder string = new StringBuilder("Hello");
    System.out.println(string.toString());
    string.append(" darkness").append(" my old friend");
    System.out.println(string.toString()); - почему в этой строчке мы пишем "toString", а не просто string?

    • @user-pr2fp7ly1c
      @user-pr2fp7ly1c 2 года назад

      мушто метод подразумевает под собой конвертацию н-ого типа в String, оттуда и такое название, а string нам ничего не говорит, да и в стрингбилдере такого метода вроде нет

  • @svetliy1987m
    @svetliy1987m Год назад

    Если писать код вот так как на видео, то уже сразу вылезает какая-то не понятная ошибка

  • @СоорбековАтай11-Г

    В java 17 ,представление инстанса стрингбилдер ,можно уже выводить без toString ,верно ? Или добавление toString обязательно ?

  • @Mariya77M
    @Mariya77M Год назад

    Не поняла разницу ,если честно.

    • @JBash-e7c
      @JBash-e7c Год назад +2

      Представь:
      Ты сидишь за столом с двумя волшебными штампами. Они волшебный, потому что каждый раз, когда ты ставишь ими печать, они отпечатывают новое слово, которое ты задумала у себя в голове. Эти штампы называются "Стринг" и "СтрингСтроитель".
      Кроме печатей также нужен лист бумаги, на котором, собственно этими штампами ставить печати.
      Листы бумаги хранятся в шкафу в трёх метрах от стола, за которым ты сидишь и взять за раз можно только один лист.
      Представила? Теперь давай выясним чем отличаются эти две печати. Как они работают:
      Печать "Стринг" работает так, что за одном листке бумаги можно поставить только одну печать. Поэтому, если тебе надо напечатать предложение из трёх слов, то тебе потребуются следующие действия:
      1. Встать из-за стола, дойти до шкафа, взять лист и вернуться за стол.
      2. Отштамповать слово печатью "Стринг".
      3. Встать из-за стола, дойти до шкафа, взять второй лист и вернуться за стол.
      4. Отштамповать второе слово печатью "Стринг".
      5. Положить второй лист справа от первого листа.
      6. Встать из-за стола, дойти до шкафа, взять третий лист и вернуться за стол.
      7. Отштамповать третье слово печатью "Стринг".
      8. Положить третий лист справа от второго листа.
      9. Взять скотч и склеить листы.
      ГОТОВО!!!
      ***
      А теперь давай посмотрим как работает штамп "СтрингСтроитель":
      1. Встать из-за стола, дойти до шкафа, взять лист и вернуться за стол.
      2. Отштамповать слово печатью "Стринг".
      3. Отштамповать второе слово справа от первого печатью "Стринг".
      4. Отштамповать третье слово справа от второго печатью "Стринг".
      ГОТОВО!!!
      В первом случае при использовании штампа "стринг" ты постоянно бегаешь до шкафа, ищешь скотч, возёкаешь листы по столу и тд... то есть ты тратишь много сил и энергии.
      А во втором случае разок сходила до шкафа села и тут же отшлёпала три слова.
      Разумеется ты бы выбрала второй вариант...
      Вот и JVM не любит лишние движение, поэтому он тоже отдает предпочтение StringBuilder, как и ты - штампу "СрингСтроитель"

  • @yauhenizakhno8510
    @yauhenizakhno8510 6 лет назад

    А так System.out.println(x.toUpperCase()); выводит. И ничего не переприсваиваем. Почему?

    • @exmike1197
      @exmike1197 3 года назад

      Потому что ты в методе sout() сразу вызываешь метод апперКейс, который в свою очередь делает операции над переменно х и нет смысла заново присваивать)
      Хотя наверное спустя 2 года немного поздновато отвечать :D да и Вы если продолжили с тех пор заниматься уже наверняка должны были стать шарящим человеком))

  • @a.stypka667
    @a.stypka667 4 года назад

    Почему-то мне приходится прописывать так:
    public class StringBuilder {
    public static void main(String[] args) {
    java.lang.StringBuilder sb = new java.lang.StringBuilder("Hello");
    sb.append(" my").append(" friend");
    System.out.println(sb.toString());
    }
    }
    Т.к. без java.lang. не работает append. С чем это можно быть связано?

    • @artemgooduck4027
      @artemgooduck4027 4 года назад +2

      названия класса измени, так как java использует твой класс с названием StringBuilder

  • @vitaliyk.6371
    @vitaliyk.6371 6 лет назад

    Не работает код на версии 2017.3.5. Выкидывает ошибку:
    Error:(30, 28) java: constructor StringBuilder in class StringBuilder cannot be applied to given types;
    required: no arguments
    found: java.lang.String
    reason: actual and formal argument lists differ in length
    Подскажите что делать,застрял.

    • @korumstar9989
      @korumstar9989 6 лет назад +2

      Было бы здорово увидеть сам код.

  • @parktronic3000
    @parktronic3000 2 года назад

    спасибо за уроки!!! у меня вопрос: почему я не могу применить к объекту sb класса stringbuilder метод toUpperCase ни напрямую через точку, ни присвоением нового значения? спасибо.

    • @ВладимирИ-э3щ
      @ВладимирИ-э3щ 2 года назад +3

      Ответ кроется в самом вопросе. Метод toUpperCase применим к символам СТРОКИ. Именно по этому он не может применяться к ОБЪЕКТУ коим является stringbuilder.
      Если проще то: stringbuilder sb это коробка. Внутри этой коробки находится некая строка, которая вызывается методом toString(). И уже к этой строке можно применить toUpperCase. Собственно это уже и есть код: sb.toString().toUpperCase;
      Можно в два действия:
      String out = sb.toString(); // Вывод строки объекта sb в переменную строки out.
      out = out.toUpperCase(); // Применение метода к переменной, содержащей строку

  • @alexmusic7589
    @alexmusic7589 4 года назад

    Добрый день ! При запуске выдаёт ошибку : Error: Could not find or load main class StringBuilder
    Кто-нибудь знает , что это?

    • @aibardulatov
      @aibardulatov 4 года назад

      Может забыли main добавить

  • @ДмитрийСельянов-ы5г

    для чего в данном случаем при sout нужно писать toString() ? И без него прекрасно выводит, даже идея пишет, что нет необходимости вызывать метод

    • @Дмитрий-ц5ш5ъ
      @Дмитрий-ц5ш5ъ 2 года назад +4

      Просто вышла новая версия Java. Раньше нужно было писать toString(), а сейчас не обязательно. Таких мелочей очень много! Видео уже 5 лет!

  • @rapiraOYP
    @rapiraOYP 4 года назад

    У меня нет метода append

  • @hfbs-w7p
    @hfbs-w7p Год назад

    Спасибо за контнт)))))

  • @YanYan-cj6np
    @YanYan-cj6np 6 лет назад

    У меня такая проблема,я не могу вписывать в условиях стринг билдера
    ошибка

    • @korumstar9989
      @korumstar9989 6 лет назад

      Было бы здорово увидеть сам код.

  • @ИванИванов-л1э6ы
    @ИванИванов-л1э6ы 2 года назад

    Усе понятно шеф.

  • @justoleg6001
    @justoleg6001 4 года назад

    По теме с 11й минуты.

  • @melissalife1818
    @melissalife1818 2 года назад

    чуть не уснул

  • @ХаннаФрея
    @ХаннаФрея Год назад

    Спасибо!

  • @denbrown4580
    @denbrown4580 2 года назад

    Странно, когда я пишу код в Ide, у меня ошибка, при попытке написать Hello в стринг билдере. Более того, sb.append выделен красным. ide решила проблему c аппендом, создав ниже private void append(String s).
    В видео ничего такого нет. Это может быть из за того, что за это время что-то в джаве поменялось?

    • @ChernovSanek
      @ChernovSanek 2 года назад +1

      У тебя название твоего java файла совпадает с классом StringBuilder. Измени свой класс на String_Builder

    • @khoromi
      @khoromi Год назад +1

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

  • @C2H5OHH
    @C2H5OHH 2 года назад

    Спасибо!

  • @frolomaskor
    @frolomaskor 2 года назад

    12:18

  • @bathord7147
    @bathord7147 5 лет назад

    Всё очень понятно и доходчиво. По окончанию урока начал сам писать этот код со StringBuilder'ом, но почему-то на месте конструктора, куда мы вписывали "Hello", подчеркнули красным и попросили создать конструктор. Метод "append" почему-то не существует для них, тоже нужно самому создавать. Вот код:
    public class StringBuilder {
    public static void main(String[] args) {
    StringBuilder sb = new StringBuilder("Hello");
    sb.append(" my class");
    }
    }
    Подскажите пожалуйста, вроде всё идентично с видео, а работать не хочет.
    P.S. Оказывается, это происходило из-за того, что объект StringBuilder совпадал с названием класса. Если изменить название класса, то всё заработает. Но почему так?

    • @ChernovSanek
      @ChernovSanek 2 года назад +2

      Потому что твой класс называется также как и стандартный класс в java.lang. Конфликт с названиями. Ты пытался вызвать метод .append() дял своего класса

    • @user-pr2fp7ly1c
      @user-pr2fp7ly1c 2 года назад

      @@ChernovSanek разве можно создавать классы(доступные друг другу) с одинаковыми названиями, и, есть ли какой-то приоритет при создании ссылки на объект этого класса?

  • @anastaskonstantinidi3246
    @anastaskonstantinidi3246 3 года назад

    Добрый вечер, в первую очередь спасибо большое за то что вы делаете! Курс просто бомбовый))
    И вопрос: почему для вывода на экран у sb нужно вызывать метод toString()? Без этого метода тоже все выводит.

  • @knightmurloc443
    @knightmurloc443 8 лет назад +3

    спасибо за уроки обясни ешё как запускать програмы на java в окне

  • @korumstar9989
    @korumstar9989 6 лет назад

    Все понятно. Спасибо!

  • @МихаилШаталин-е8п
    @МихаилШаталин-е8п 3 года назад

    Мне одному тихо или он действительно тихо говорит?

  • @nikiforovpteacher
    @nikiforovpteacher 2 года назад

    Любая цепочка конкатенаций проходит через промежуточный StringBuider, а потом вызывается конструктор String и возвращается новая строка. Чтобы в этом убедиться, достаточно посмотреть код JVM

    • @Dmitry_RS
      @Dmitry_RS 2 года назад

      Т.е. делаем просто через + и не пользуемся StringBuider?

    • @nikiforovpteacher
      @nikiforovpteacher 2 года назад

      @@Dmitry_RS зависит от многих факторов

    • @Dmitry_RS
      @Dmitry_RS 2 года назад

      @@nikiforovpteacher Если не затруднит можете подробнее написать от каких, переучиваюсь сейчас с php - хочу сразу понять как делать правильно.

    • @berkator
      @berkator Год назад +1

      ​@@Dmitry_RSStringBuilder - это класс, предоставляющий удобные методы для работы с изменяемыми строками. Он позволяет выполнять множество операций с текстом без создания дополнительных объектов в памяти, что делает его более эффективным для конкатенации большого числа строк. StringBuilder рекомендуется использовать, когда вам необходимо собирать или изменять строки в циклах или приложениях с большим объемом операций над строками. Объединение строк с помощью оператора + является более простым, но менее эффективным способом объединения небольшого числа строк. Хотя использование + для объединения строк удобно и читабельно, оно неэффективно для случаев, когда объединяется большое количество строк или выполняется множество операций над строками. Отличие между StringBuilder и объединением строк через + заключается в их производительности. Когда объединяется большое количество строк, использование StringBuilder может существенно увеличить производительность вашего кода, так как он позволяет избежать создания множества промежуточных строк в памяти, что приводит к меньшему потреблению ресурсов и более быстрой работе.

    • @berkator
      @berkator Год назад +2

      ​@@Dmitry_RSВажно выбирать подходящий метод в зависимости от конкретного сценария. Если вам нужно объединить всего несколько строк или выполнять эту операцию редко, оператор + может быть вполне удовлетворительным. Однако, если вам необходимо объединить много строк или проводить множество операций над текстом, то StringBuilder будет более предпочтительным выбором для оптимизации производительности.

  • @eltrading7356
    @eltrading7356 5 лет назад

    Отличное видео!

  • @alisaholainen6334
    @alisaholainen6334 4 года назад

    Супер!

  • @1mmerlich
    @1mmerlich Год назад

    Можно ещё проще написать
    public class Lesson23 {
    public static void main(String[] args) {
    StringBuilder s = new StringBuilder("Hello");
    s.append(" My" + "Friend");
    System.out.println(s.toString());
    }
    }

  • @HelloWorld-oc2eu
    @HelloWorld-oc2eu 3 года назад +1

    Тема mutable и imutable не раскрыта. Беру складываю строки, они изменяются и те и те

    • @AndreyMalygin
      @AndreyMalygin 3 года назад +2

      В одном случае с String создаётся новая строка под капотом, а в StringBuinder работает быстро и как надо, просто добавляется к строке

    • @АлександрЧ-у6к
      @АлександрЧ-у6к Год назад +1

      друг, ты вообще видео смотрел? )) Особенно ту часть, про расход памяти и быстродействие.

  • @yuriymoskalev45
    @yuriymoskalev45 7 лет назад

    Спасибо большое за отличную подачу материала. Оставьте в описании видео кошельки для доната.

    • @alishevN
      @alishevN  7 лет назад +1

      Спасибо вам! Эти уроки бесплатные :)

    • @АлексГрин-ю1я
      @АлексГрин-ю1я 5 лет назад

      Нафиг ему ваш донат, по нему и так видно, что бабки лопатой гребет, а учит на чистом интузиазме практически.

  • @АндрейАндрей-е6и6р
    @АндрейАндрей-е6и6р 4 года назад

    а чем этот метод отличается от метода concat() , чем лучше или какие отличия ? на мой взгляд этот метод проще, не нужно создавать заранее ни чего отличного от обычного String, проще вывод...
    пример:
    String a = " text ";
    a = a.concat("text two");
    System.out.println(a);
    вывод : text text two

    • @FerraKube
      @FerraKube 4 года назад

      отличия в так называемом "нерационального использования памяти". Твоим способом мусор остается в памяти, через билдер нет. Метод append принимает любой тип данных, а concat только string. А уж про всякие полезные методы билдера лучше самому почитать)

  • @АленаНаконечна-л9щ
    @АленаНаконечна-л9щ 8 лет назад +1

    урок отстой, ничого не слышно