AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.03.2007, 11:46   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AndyD Посмотреть сообщение
А как тогда интерпретировать это?
На сайте Эхо Москвы есть передача Суть событий
В заставке Сергей Пархоменко говорит: "Я обещал вам объяснить суть событий? Объясняю. По пятницам после 9 вечера"...

Объясняю:
Все зависит от реализации java-машины.
((dictTable == null) == true) вовсе не означает, что dictTable физически содержит 0.
Такая проверка дает ответ на вопрос "ссылается ли данная переменная на класс или нет". И ничего больше.
Причем уточняю: "на экземпляр (instance) класса".

В данном случае обе переменные dictTable и dictTable не ссылаются на какой-то конкретный экземпляр. Но реализация может быть такова, что они физически все же ссылаются в какое-то место памяти.

И еще раз напомню: не забывай о том, что память в java-машинах освобождается не сразу, а только после работы сборщика мусора. См. ФАКи по java...

Это Java, а не С
__________________
полезное на axForum, github, vk, coub.
Старый 23.03.2007, 13:23   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
В данном случае обе переменные dictTable и dictTable не ссылаются на какой-то конкретный экземпляр. Но реализация может быть такова, что они физически все же ссылаются в какое-то место памяти.

И еще раз напомню: не забывай о том, что память в java-машинах освобождается не сразу, а только после работы сборщика мусора. См. ФАКи по java...

Это Java, а не С
Однако ObjectIdent отлично проглатывает такой "псевдоэкземпляр", в отличие от NULL и при его получении происходит увеличение счетчика ссылок на единицу.
Кстати, ни одни сборщик мусора не удалит объект в памяти, на который есть ссылки.

Ради эксперимента вставил в класс Info код по созданию "пустого" DictTable и добавил метод по его удалению (явному присвоению NULL). После рестарта ссылка на объект оставлась до тех пор, пока не вызвал метод по удалению

В общем, как такой объект ни называй, память он занимает, пока явно не будет присвоен null или не выйдет из области видимости
__________________
Axapta v.3.0 sp5 kr2
Старый 23.03.2007, 13:40   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AndyD Посмотреть сообщение
В общем, как такой объект ни называй, память он занимает, пока явно не будет присвоен null или не выйдет из области видимости
Чтобы можно было ориентироваться в первоисточнике (в java), рискну уточнить:
объект в java занимает память пока не будет вызван его деструктор.

Да, в java есть деструкторы. Просто конкретная реализация под названием X++ не позволяет вызвать деструктор явно (или я не знаю такого способа). В java деструкторы вызываются в основном сборщиком мусора. Вручную деструкторы вызываются очень редко (как раз в подобных случаях, когда конструктору не удалось создать объект)

Чтобы заглубляться в вопрос дальше, лучше рыть в сторону java-документации и java-форумов.
__________________
полезное на axForum, github, vk, coub.
Теги
ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Диалог - программное создание из класса Arahnid DAX: Программирование 4 08.10.2008 18:20
Создание номенклатуры с использ. axInventTable класса. Можно ли запретить использование шаблонов записей? Hub DAX: Программирование 2 03.09.2008 15:12
Запустить метод класса loka DAX: Программирование 2 13.03.2006 15:40
Проблема с инициализацией экземпляра объекта Jox DAX: Программирование 2 11.01.2006 12:55
Создание экземпляра COM по его CLSID Borisov Nikolai DAX: Программирование 1 02.12.2002 10:37

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:07.