2014-12-29 4 views
1

Почему Java использует ссылки на внутреннюю структуру и почему java не предпочитает указатели. Есть ли какая-то большая логика? Указатели не подходят для адресации или это не лучший способ предоставить прямой адрес (доступ) от указателей?Ссылки на Java по указателям

+1

Из-за сборщика мусора. – SLaks

+3

Является ссылкой не указателем? Конечно, вы не можете работать с ними напрямую, но это работает именно так. – MightyPork

ответ

0

Почему использование java Ссылки на его внутреннюю структуру и почему java не предпочитает указатели.

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

Указатели не подходят для адресации или это не лучший способ обеспечить прямой адрес (доступ) от указателей?

Да, но указатели - очень острый инструмент. Вы также можете легко злоупотреблять ими или вводить ошибки.

1

Ссылка указатель. Реальная разница в том, что в Java вы не можете делать указатель arithmetic; то есть вы не можете указывать указатели на произвольные ячейки памяти или добавлять их к указателю или тому подобное.

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

Но с арифметикой указателей было бы невозможно сохранить эти защиты на месте; поэтому они просто запрещены на Java.

Это не только безопасность, но и защита. Ошибки с указателями могут быть очень тонкими и труднодоступными. Язык Java разработан, чтобы помочь вам написать правильный код или, по крайней мере, написать код, который не поддается неожиданным и непредсказуемым образом.

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

Как и большинство вещей в дизайне языка, это компромисс.

Смежные вопросы