Как стать автором
Обновить
179
0
Тимур Гуев @tguev

Основатель BEEGEEK, автор курсов Поколение Python

Отправить сообщение
Это миллисекунды.
Я думаю автор сказал что перечисления зло — потому что они создают проблему с управлением версиями.
При добавлении новых констант в перечисление приходится перекомпилировать код использующий его.
А так спору нет — это полезная штука…
Вот комментарий к данному полю.

// The Empty constant holds the empty string value.
//We need to call the String constructor so that the compiler doesn't mark this as a literal.
//Marking this as a literal would mean that it doesn't show up as a field which we can access from native.
public static readonly String Empty = "";

Это сделано для доступа к полю из неуправляемого(native) кода.
Просто менять оригинальное название статьи нехорошо))) А фактов и впрямь 12)
Дело в том, что пользы от данной оптимизации не так уж много, поэтому они решили от нее избавится.
Как я понял эти изменения касаются именно реализации от Oracle. Про реализацию от IBM без понятия…
Я понял, что изменения вступили в силу только начиная с Java 1.7.0_06, а в Java 1.7.0 их нет.
По не воле вспомнилось высказывание: «Если бы в Java действительно работала сборка мусора, большинство программ бы удаляли сами себя при первом же запуске».
Структуры располагаются в стеке потока, а не в куче, в следствии чего не требуется освобождение памяти сборщиком мусора.
В Java есть примитивы(byte, short, int, float,...) это аналоги структур в .NET (они располагаются в стеке). Однако нет возможности создать пользовательский тип который бы располагался в стеке.
Чтобы сборщик мусора отдыхал :)
Конечно старые строки будут освобождаться сборщиком мусора. Имелось виду, что на создание строки потребуется памяти пропорционально квадрату длины, а не то что она будет использовать столько памяти.
Я ведь указал, что полученная сумма есть сумма арифметической прогрессии.
(n2+n) / 2 = O(n2)
Во-первых это не бред. Мой вывод был сделан на основании реализации метода substring который до последней версии возвращал ссылку на текущий массив символов.
Во-вторых это не реклама и тем более не грязная реклама. Ведь никто не говорит, что в .NET строки реализованы лучше чем в Java!
В-третьих не думаю, что в Sun/Oracle работают тупые люди.
В-четвертых реализация строкового типа в последней версии Java поменялась и теперь она похожа на поведение в .NET.
Спасибо за замечание. Не знал…
Именно! Лишний пробел) Поправил.
Спасибо за статью. Она многое поставила на свои места, а то так то все известно(по частям) но как то общей картины не складывалось.
Здесь создается анонимный тип с одним свойством Items являющийся структурой (поскольку у List a итератор реализован в виде структуры). Далее при каждом обращении к свойству Items в цикле будет возвращена копия именно поэтому мы зациклимся.
Точно так же можно сказать и про x = 0 и -x = 0. Просто когда я писал статью я подразумевал что прямая не вырождена в вертикальную или горизонтальную

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность