![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.02.2010
Сообщений: 27
|
![]()
У нас есть статическое поле класса изначально равное нулю.
В конструкторе класса мы это счётчик инкрементим. И соответственно при уничтожении объекта, счётчик надо декрементить. В плюсах понятно как сделать. А как это в реализовать в яве? (Вариант с методом finalize() не катит) |
![]() |
![]() |
![]() |
#2 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
А что вам, собственно, неясно?
У нас есть конструктор, который делает инкремент, и функция, которая делает декремент. А сам объект удалит сборщик мусора. Пример Код:
|
![]() |
![]() |
![]() |
#3 | ||
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
![]() Цитата:
Код:
Цитата:
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. |
||
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 20.02.2010
Сообщений: 27
|
![]()
Финалайз не катит по той причине, что метод финалайз может вообще-то никогда и не вызваться. Он может быть вызван после деструктора, может быть вызван значительно позже деструктора, а может так и не разу не вызваться. т.е. ничего важного в них кидать нельзя.
ладно. не много изменю вопрос. как сделать такой счётчик, который будет считать количество объектов на которые ещё существуют ссылки, а то получаеться даже елси бы в можно было вызвать декремент как-нибудь в деструкторе(знаю что нельзя) , то всё равно счётчик бы считал количество реально СУЩЕСТВУЮЩИХ объектов, но на некоторые из этих объектов могли уже быть потеряны последнии ссылки... |
![]() |
![]() |
![]() |
#5 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
О каких деструкторах вы говорите?
В яве нет деструкторов, очистку памяти выполняет сборщик мусора, который и вызывает метод finalize(), когда количество ссылок на объект равно нулю. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 20.02.2010
Сообщений: 27
|
![]()
что? вы хотите сказать что если я не определю метод финалайз или же дам ему пустое тело, объект реально никогда не удалиться из памяти???
цитата из книги Джошуа Блоха "Эффективное программирование": "Спецификация языка Java не только не дает поручительства, что методы finalize будут вызваны быстро, она не гарантирует, что они вообще будут вызваны. Вполне возможно, что программа завершится, так и не вызвав метод finalize для некоторых объектов, ставших недоступными" |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 13
|
![]()
Давайте с другой стороны подойдем к вопросу. А зачем вам ЭТО?
Хочешь начать карьеру фрилансера, но не знаешь как? Узнай здесь!
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка Хоара(для объектов класса) | m9yt | Общие вопросы C/C++ | 0 | 02.06.2010 18:45 |
создание объектов класса | Serjuk | Общие вопросы C/C++ | 8 | 13.05.2010 18:54 |
Коллекция объектов класса в С++ | MarihuanaP | Помощь студентам | 2 | 09.05.2010 13:06 |
Создание объектов класса в цикле | Formdet | Общие вопросы .NET | 4 | 23.04.2010 21:43 |
Общий обработчик для нескольких объектов | Strombald | Помощь студентам | 10 | 23.12.2009 22:57 |