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

Поділитися
Вставка
  • Опубліковано 20 гру 2024

КОМЕНТАРІ • 157

  • @alishevN
    @alishevN  6 років тому +6

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

    • @solitarywanderer8571
      @solitarywanderer8571 2 роки тому

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

  • @ХалкХалкович-щ2э
    @ХалкХалкович-щ2э 6 місяців тому +8

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

  • @ВаняШомнест
    @ВаняШомнест 8 років тому +59

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

    • @alishevN
      @alishevN  7 років тому +4

      Пожалуйста!

  • @N0llGravity
    @N0llGravity Рік тому +3

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

  • @victorialeowtos6305
    @victorialeowtos6305 3 місяці тому +1

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

  • @flawlessvictory9176
    @flawlessvictory9176 2 роки тому +4

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

  • @MikhailLatypov-n6r
    @MikhailLatypov-n6r Рік тому +8

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

    • @DnGJiJ
      @DnGJiJ 10 місяців тому +1

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

    • @Sir_Tyler.s
      @Sir_Tyler.s 23 дні тому

      @@DnGJiJ Работает

  • @yegorivanov3006
    @yegorivanov3006 4 роки тому +13

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

  • @sasunhakobyan7251
    @sasunhakobyan7251 5 років тому +4

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

  • @homofaber1002
    @homofaber1002 Рік тому +1

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

  • @ettti28
    @ettti28 5 років тому +14

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

  • @dmytrohelbak
    @dmytrohelbak 6 років тому +5

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

  • @siberian_arg
    @siberian_arg 3 роки тому +2

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

  • @OneMaxBeatz
    @OneMaxBeatz Рік тому +1

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

  • @vlad_i_mir
    @vlad_i_mir Рік тому +1

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

  • @wldzam
    @wldzam 5 років тому +20

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

    • @alekseyfrozis937
      @alekseyfrozis937 5 років тому +2

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

    • @NiflheimForever
      @NiflheimForever 4 роки тому

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

    • @MrNilf
      @MrNilf 4 роки тому +3

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

    • @blackteam5273
      @blackteam5273 2 роки тому

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

    • @MrNilf
      @MrNilf 2 роки тому +6

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

  • @НикитаКорнюхин-я6щ
    @НикитаКорнюхин-я6щ 2 роки тому +2

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

  • @АндрейЛысенко-й4ш
    @АндрейЛысенко-й4ш 10 місяців тому +1

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

    • @DmitryTyukilin
      @DmitryTyukilin 9 місяців тому

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

  • @Anatoli-bq1pe
    @Anatoli-bq1pe 2 роки тому +1

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

  • @vitaliyk.6371
    @vitaliyk.6371 6 років тому +4

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

  • @getteg6468
    @getteg6468 5 років тому +1

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

  • @kladmonet9
    @kladmonet9 4 роки тому +2

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

  • @ruslankolesnichenko6014
    @ruslankolesnichenko6014 6 років тому +7

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

  • @marirazno6117
    @marirazno6117 7 років тому +8

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

    • @alishevN
      @alishevN  7 років тому +3

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

    • @DolphinArtem
      @DolphinArtem 3 роки тому

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

  • @ruslankoles7648
    @ruslankoles7648 5 років тому +2

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

    • @alishevN
      @alishevN  5 років тому +1

      Да, верно

  • @theantferdy
    @theantferdy 2 роки тому +2

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

  • @tuRistst
    @tuRistst 8 років тому +5

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

  • @ВячеславХарламов-е9р
    @ВячеславХарламов-е9р 8 років тому +4

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

  • @divergenny
    @divergenny 4 роки тому +1

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

  • @Алекс-ю8э2с
    @Алекс-ю8э2с 3 роки тому +1

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

  • @usafamily4804
    @usafamily4804 3 роки тому +1

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

  • @ВладимирИ-э3щ
    @ВладимирИ-э3щ 2 роки тому +2

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

  • @rustamergashev3648
    @rustamergashev3648 8 років тому +3

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

    • @alishevN
      @alishevN  7 років тому +2

      Пожалуйста!

  • @objectobj
    @objectobj 3 роки тому

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

  • @nailovie4235
    @nailovie4235 7 років тому +2

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

  • @korumstar9989
    @korumstar9989 6 років тому

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

  • @SvetlanaGarcia
    @SvetlanaGarcia 5 місяців тому

    Спасибо ! 👍

  • @eltrading7356
    @eltrading7356 5 років тому

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

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

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

  • @vitaliyk.6371
    @vitaliyk.6371 6 років тому +4

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

  • @hfbs-w7p
    @hfbs-w7p Рік тому

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

  • @ИванИванов-л1э6ы
    @ИванИванов-л1э6ы 3 роки тому

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

  • @prometeusll4665
    @prometeusll4665 7 років тому +1

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

  • @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ы 7 років тому

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

    • @user-pr2fp7ly1c
      @user-pr2fp7ly1c 2 роки тому

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

  • @igoriyification
    @igoriyification 5 років тому +19

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

  • @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 будет более предпочтительным выбором для оптимизации производительности.

  • @jamjam3337
    @jamjam3337 4 місяці тому

    спасибо!

  • @Mickey_NoMouse
    @Mickey_NoMouse 3 дні тому

    Теперь IDE подсказывает что вызов toString у стрингбилдера в принципе не нужен) еще удобнее стало в общем.

  • @C2H5OHH
    @C2H5OHH 2 роки тому

    Спасибо!

  • @kilhbffvc7011
    @kilhbffvc7011 Місяць тому

    А в этом плейлисте вся база?? Или есть полный курс базы?

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

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

  • @ОльгаБажина-щ6я
    @ОльгаБажина-щ6я 9 місяців тому

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

  • @trrt9756
    @trrt9756 3 роки тому

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

  • @m-krevolvo7552
    @m-krevolvo7552 4 роки тому

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

  • @Муракин
    @Муракин 5 років тому +2

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

    • @oleksandrfesiuk6310
      @oleksandrfesiuk6310 4 роки тому

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

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

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

    • @Дмитрий-ц5ш5ъ
      @Дмитрий-ц5ш5ъ 3 роки тому +4

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

  • @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(); // Применение метода к переменной, содержащей строку

  • @denbrown4580
    @denbrown4580 3 роки тому

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

    • @ChernovSanek
      @ChernovSanek 2 роки тому +1

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

    • @khoromi
      @khoromi Рік тому +1

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

  • @alisaholainen6334
    @alisaholainen6334 4 роки тому

    Супер!

  • @alexmusic7589
    @alexmusic7589 4 роки тому

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

    • @aibardulatov
      @aibardulatov 4 роки тому

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

  • @yauhenizakhno8510
    @yauhenizakhno8510 6 років тому

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

    • @exmike1197
      @exmike1197 3 роки тому

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

  • @vitaliyk.6371
    @vitaliyk.6371 6 років тому +1

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

  • @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 Рік тому

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

  • @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

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

  • @the_endless_fantasy
    @the_endless_fantasy 4 роки тому

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

  • @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 разве можно создавать классы(доступные друг другу) с одинаковыми названиями, и, есть ли какой-то приоритет при создании ссылки на объект этого класса?

  • @spirridd
    @spirridd 7 років тому +1

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

  • @ilyaLopatin
    @ilyaLopatin Рік тому

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

    • @FerraKube
      @FerraKube Рік тому +1

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

  • @YanYan-cj6np
    @YanYan-cj6np 7 років тому

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

    • @korumstar9989
      @korumstar9989 6 років тому

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

  • @anastaskonstantinidi3246
    @anastaskonstantinidi3246 3 роки тому

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

  • @Fulls_moment
    @Fulls_moment Рік тому

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

  • @yuriymoskalev45
    @yuriymoskalev45 7 років тому

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

    • @alishevN
      @alishevN  7 років тому +1

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

    • @АлексГрин-ю1я
      @АлексГрин-ю1я 6 років тому

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

  • @donttouch5878
    @donttouch5878 3 роки тому +1

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

  • @yusupsm9312
    @yusupsm9312 8 років тому +2

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

  • @frolomaskor
    @frolomaskor 2 роки тому

    12:18

  • @knightmurloc443
    @knightmurloc443 8 років тому +3

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

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

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

  • @АндрейАндрей-е6и6р

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

    • @FerraKube
      @FerraKube 4 роки тому

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

  • @melissalife1818
    @melissalife1818 2 роки тому

    чуть не уснул

  • @anton28348
    @anton28348 4 роки тому +2

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

  • @justoleg6001
    @justoleg6001 4 роки тому

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

  • @n0stamina
    @n0stamina 7 місяців тому

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

  • @Mariya77M
    @Mariya77M Рік тому

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

    • @JBash-e7c
      @JBash-e7c Рік тому +2

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

  • @_amonimus_
    @_amonimus_ 28 днів тому

    ну из-за дизайна видно что снимали 8 лет назад

  • @HelloWorld-oc2eu
    @HelloWorld-oc2eu 3 роки тому +1

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

    • @AndreyMalygin
      @AndreyMalygin 3 роки тому +2

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

    • @АлександрЧ-у6к
      @АлександрЧ-у6к 2 роки тому +1

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

  • @МихаилШаталин-е8п
    @МихаилШаталин-е8п 3 роки тому

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

  • @АленаНаконечна-л9щ
    @АленаНаконечна-л9щ 8 років тому +1

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

  • @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());
    }
    }

  • @ХаннаФрея
    @ХаннаФрея Рік тому

    Спасибо!