Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 15.08.2012
Сообщений: 6

Обнуление объектов

30.10.2012, 02:00. Показов 5008. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Решил написать свой собственный LinkedList. Например, есть объкт 1 который ссылается на объкт 2, 2 ссылается на объект 3 и т.д. 1->2->3->4->...->100. Каждый объект состоит из поля типа Integer и ссылки на следующий объект.

Итак, вопрос: если я хочу удалить последние 50 элементов, достаточно ли просто удалить ссылку 50-го элемента на 51-ый или надо при этом обнулить последних 50 элементов.

*Я так понимаю, что до "прихода" gc область памяти, которую занимают последних 50 єлементов, будет недоступной для записи.

Заранее благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.10.2012, 02:00
Ответы с готовыми решениями:

Ошибка чтения или обнуление массива объектов
Суть, есть абстрактный класс А от него наследие идет к классу B extends A, B еще и implements Serializable. (public class B extends A...

LinkedList составленный из объектов класса, как обратиться к полям объектов
Не могу сообразить как обратиться к полям объектов, добавленных в LinkedList. Суть такая: есть класс, имеющий 4 поля (разные типы - String...

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

4
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
30.10.2012, 02:48
хорошо бы обнулить все явно иначе понадобится 50 проходов gc чтобы всё очистить
вот как в исходниках явы (прочтите комменарий под clear()):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 /**
     * Removes all of the elements from this list.
     * The list will be empty after this call returns.
     */
    public void clear() {
        // Clearing all of the links between nodes is "unnecessary", but:
        // - helps a generational GC if the discarded nodes inhabit
        //   more than one generation
        // - is sure to free memory even if there is a reachable Iterator
        for (Node<E> x = first; x != null; ) {
            Node<E> next = x.next;
            x.item = null;
            x.next = null;
            x.prev = null;
            x = next;
        }
        first = last = null;
        size = 0;
        modCount++;
    }
Добавлено через 1 минуту
Цитата Сообщение от JOLO_ Посмотреть сообщение
*Я так понимаю, что до "прихода" gc область памяти, которую занимают последних 50 єлементов, будет недоступной для записи.
да (с учётом вышесказанного до 50 приходов если не сделать явно)
1
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
30.10.2012, 13:11
Не совсем понял про 50 проходов. У нас получится недостижимый по ссылкам связный граф из 100 элементов (50 элементов организации списка, 50 Integer-значений). GC такие графы, имхо, умеет убирать в один проход. Во всяком случае это декларируется.
1
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
30.10.2012, 13:52
Цитата Сообщение от Skipy Посмотреть сообщение
Не совсем понял про 50 проходов.
ну 50 это я скорее всего погорячился (это наихудший невероятный случай если каждый обьект в листе будет находиться в отдельном поколении, чего скорее всего не случится) http://www.oracle.com/technetw... enerations
1
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
30.10.2012, 14:24
Цитата Сообщение от mutagen Посмотреть сообщение
ну 50 это я скорее всего погорячился (это наихудший невероятный случай если каждый обьект в листе будет находиться в отдельном поколении, чего скорее всего не случится)
Что-то мне подсказывает, что этого совершенно точно не случится. В young два блока eden и несколько survivor. Ну и tenured. Т.е. всего блоков максимум штук пять. Из eden всё соберется одним движением, из survivor тоже. tenured может подождать некоторое время, пока там понадобится сборка. Хотя eden может чиститься и больше 50 раз до того, как потребуется очистка tenured, так что вообще не угадаешь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.10.2012, 14:24
Помогаю со студенческими работами здесь

Обнуление ссылки и ее содержимое
Есть например какой-нибудь класс, в котором создаются экземпляры других классов, переменные и прочее. Если я пропишу основному классу null,...

Декартово дерево. Передача объектов в дерево. Сравнение объектов в дереве
Нашёл статью про декартово дерево на хабре на языке C# https://habrahabr.ru/post/101818/ Переписал его на Java (надеюсь, что правильно) и...

Обнуление ПР
товарищи, за что могут обнулить пр? (кроме продажи ссылок и копипастного контента)

Обнуление
У меня есть 4 RadioButton, и при нажатии на кнопку данные берутся из БД и записываются. Вопрос : как каждый раз убирать то что выделили...

В программе реализовать возможность записи объектов в файл и чтения объектов из файла
Добрый день, помогите, пожалуйста! У меня есть программа: #include &lt;iostream&gt; #include &lt;locale.h&gt; using namespace std; class...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru