Здравствуйте, fellow.sufferer, Вы писали:
FS>Здравствуйте, aka50, Вы писали:
A>>A>> MyObject obj = new MyObject();
A>> obj = new MyObject();
A>>
A>>Что есть obj?
FS>Какой ужас!
Как раз твои коменты — это ужас... Ты что-то кроме java и
дельфи в своей жизни видел?
В терминах С++:
FS>1. MyObject obj — создал ссылку на MyObject
Кто на ком стоял? Создан указатель, который равен null, т.е. он указывает в никуда...
FS>2. new MyObject(); — создал объект MyObject
угу, и присвоил указателю адрес объекта myobject.
FS>3. obj = new MyObject(); — создал объект и установил ссылку.
изменил значение указателя
Ссылка — это указатель контролируемый gc. Ничего волшебного
в слове "ссылка" нет. То, что мы в java не можем так просто
получить реальный адрес — это условности jvm (в частности
из-за возможности изменения адреса при дефрагментации gc),
например в .Net слышал есть понятние fixed, что дает
возможность работать с адресом в памяти.
Вот доходчиво:
http://rsdn.ru/Forum/Message.aspx?mid=2274247&only=1Автор: Michael Ponomarev
Дата: 21.12.06