Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

J4. Типы / TYPE - Непримитивный тип String

  • На этом уроке мы немного поговорим о классе String.
    Им также удобно пользоваться, как и примитивными типами.
    Однако есть некоторые особенности реализации этого класса,
    о которых необходимо знать при разработке программ.
  • Дата отправки отчёта: 31 октября 2016 г.
  • Задание выполнено: за 1 час. 00 мин.
  • Чему научился: Работе с объектом String в Java
  • Что было сложным: найти время
  • Комментарии: Отличный урок, узнал много интересного при работе со строковыми объектами, спасибо.
  • Оценка видео-уроку:
Отчёт от 10558 за J4. Типы / TYPE - Непримитивный тип String




Оцени работу

 
Сохранить страницу:

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Иван Воронин  # Язык Java / TYPE - Непримитивный тип String / 2016-10-31 22:44

Правда целый час выполнил этот урок?


10558. --
Иван Воронин
Иван Воронин
ответить
→  Евгений Волосатов  # Язык Java / TYPE - Непримитивный тип String / 2016-10-31 22:47

Да, изучал особенности String в Java, продумывал как лучше составить таблицы, чтобы было нагляднее =) косметика требует времени.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Евгений Волосатов  # Язык Java / TYPE - Непримитивный тип String / 2016-10-31 22:50

последняя табличка это трата времени на цикличное добавление символов к стрингу, буфер и билдер одинаковые по скорости, обычная конкатенация медленнее не в 4 раза, как в прошлый раз проверял, а в 3000+ раз, и то это при 100_000 циклов, чем больше циклов, тем выгоднее билдер или буфер.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Иван Воронин  # Язык Java / TYPE - Непримитивный тип String / 2016-10-31 22:56

А что делает intern



4004. --
Елена
Елена
ответить
→  Иван Воронин  # Язык Java / TYPE - Непримитивный тип String / 2016-11-01 15:51

Найти время всегда сложно :)


10558. --
Иван Воронин
Иван Воронин
ответить
→  Елена  # Язык Java / TYPE - Непримитивный тип String / 2016-11-01 16:59

Так же как и иной раз сложно понять, сколько потратил времени на задачу, так как в процессе её решения отвлекали много раз на разные промежутки времени =)



Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: тип String не относится к примитивным Присваиваемое значение заключается в "двойные кавычки" 'Апострофы' применяй в JAVA для присвоения одиночных символов. "Кавычки  " применяй в JAVA для присвоения неодиночных символов, строк текстов. Пустая строка допускается Допустимы экранирование спецсимволов ' " \ Переменные типа String не редактируются (не меняются, а копируются с изменениями) в месте их хранения в памяти При редактировании переменной типа String создаётся новая копия с изменениями Отсюда потенциальная проблема - при обработке String в цикле, множество копий больших переменных нагружают память и тормозят работу Проблему тормозов решает класс StringBuilder, умело редактирующий string с оптимизацией расходования памяти При использовании знака сложения текста и чисел работает конкатенация, учитывай! Скобки помогают отключить конкатенацию: "ответ: " + 5 + 7 возвратит "ответ: 57" "ответ: " + (5+7) возвратит "ответ: 12" Сравнение разных переменных String С ОДИНАКОВЫМ ЗНАЧЕНИЕМ возвратит true Сравнение разных переменных String С ОДИНАКОВЫМ ЗНАЧЕНИЕМ возвратит false ЕСЛИ ПРЕДПРИНИМАЛОСЬ РЕДАКТИРОВАНИЕ



Научился: Научился определять длину расширенной строки, копировать строки, конкатенировать. Набрал пример из урока, сконкатенировал строки "дом" и "2", получилось "дом2" :D. В моем случае нет отдельного типа String, поэтому я его смоделировал вручную, создав схожую immutable-реализацию. Проверил оптимизацию компилятора на хранение по одному адресу одинаковых строковых констант. Радует то, что оптимизация работает даже без дополнительных ключей компилятора :)