2013/01/10 20:58:59
В джаве, как известно, (почти) всю жизнь String.substring не копировала контент, а создавала новую строку со ссылкой на участок в старой.

Ну и теперь представьте, у вас какие-нибудь большие объекты проезжают через программу, типа веб какой-нибудь, а вы находите там какую-нибудь подстроку, типа stock symbol, и складываете куда-нибудь в кеш, а остальное думаете, что выкидываете. А оно не выкидывается, потому что ваши четыре буквы ссылаются на большое поле в очень большом объекте. Упс, OutOfMemory. details.

В седьмой джаве пофиксено, но теперь всякий код, который расчитывает, что подстроки дёшевы, грубо обламывается. Представьте, что мы выдёргиваем не символ, а html body, и, надеясь, что это дёшево, не заботимся ни о чём таком, тем более, что уже пять лет как работает же.
0 посетителей, 36 комментариев, 0 ссылок, за 24 часа