YuReC.CoM, seclub.org/forum/goto/13612734/ - если ссылка на нее есть, это ж еще не значит, что у тебя к ней есть доступ. Кроме твоего кода есть еще и чужой. Да и в своем не очень удобно (и правильно) думать о том, куда ты засунул ссылку, чтобы ей воспользоваться из другой части кода. seclub.org/forum/goto/13613486/ - самый простой вариант - генерировать два случайных числа в пределах диапазона индексов массива и переставлять элементы по этим адресам. И так какое-то количество раз в цикле.
YuReC.CoM, объясню на примере браузера. Представь, что в браузера есть рямая ссылка на текущую страницу и два стека: стек адресов и стек слабых ссылок на предыдущие страницы. Каждый раз, когда пользователь жмёт на ссылку на стек адресов добавляется адрес текущей страницы, а в стек страниц - new WeakReference(текущаяСтраница). Тем временем, прямой ссылке присваивается значение следующей страницы. Что дальше? Начинается самое интересное... Пользователь жмёт "Назад"; со стека адресов берётся адрес, а со стека слабых ссылок изымается последний объект. Проверяется, ссылается ли ссылка(простите за повторы) на что-то, или равна null. Если первый вариант - прямой ссылке присваивается значение из слабой и для пользователя это ввыглядит как "Страница загружена из кеша". В случае с null мы просто заново перезагружаем страницу. Здесь правда более бы подошли SoftReference, но CLDC есть CLDC. )
Кстати, что касается слабых ссылок, то есть пример использования для классов, которые что-то хранят о потоках, но сами потоками не управляют. Если поток обрабатывается классом, то WeakHashMap получает запись с потоком в качестве ключа и дополнительной информацией о нем в качестве значения. Пока поток жив, информацию можно достать. Как только поток сдохнет, информация станет никому не нужна, а благодаря слабым ссылкам сборщик мусора при следующем же запуске сможет убрать запись. Если бы использовались жесткие ссылки, то необходимо было бы постоянно думать о том, что произошло с потоками, а так все получается автоматически.
Может быть такое, что при использоавнии float на разных телефонах будет давать разный результат? Т.е. на одном 1f-0.5f=0.4999999999f на другом 1f-0.5f=0.5f а на третьем 1f-0.5f=0.500000009f?
YuReC.CoM, не по блютузу хочеш игру делать? я когда-то этим тоже интересовался. говорили, что может отличаться. хотя я тестировал на нескольких девайсах - было все одинаково.
YuReC.CoM, я предметно вопрос в спецификации Java не исследовал, но зато могу сказать, что если тебе нужен точный ответ, на float и double полагаться нельзя. Если ты их используешь, то должен учитывать, что значения могут иметь отклонения от ожидаемых значений. Но если нужно считать точно, тогда на Java SE используют BigDecimal, а тебе можно попробовать обойтись int.
26 июл 2011 в 19:52
seclub.org/forum/goto/13613486/ - самый простой вариант - генерировать два случайных числа в пределах диапазона индексов массива и переставлять элементы по этим адресам. И так какое-то количество раз в цикле.