Адрес памяти массива - Java - PullRequest
2 голосов
/ 13 января 2011

Кто-нибудь знает, чтобы получить адреса памяти индексов массива? (как в с)

Ответы [ 2 ]

5 голосов
/ 13 января 2011

В Java нет программируемого понятия "адрес". В таких языках, как C или C ++, идентичность объектов приравнивается к их адресу - два объекта являются одним и тем же объектом, если они живут в одной и той же ячейке памяти. В Java это понятие идентичности отделено от адреса объекта. Это позволяет некоторые оптимизации, которые не возможны в C ++. Например, сборщик мусора теоретически может перемещать объекты в памяти, чтобы избежать фрагментации, при условии, что он изменяет ссылки, чтобы они указывали на правильное местоположение. Поскольку адреса памяти не могут быть доступны непосредственно программисту, эта операция допустима. В C ++ это не сработало бы, потому что компилятор не мог определить, был ли определенный битовый шаблон в памяти каким-то образом закодированным указателем.

1 голос
/ 13 января 2011

Вы не можете. У Java нет прямого доступа к памяти.

...