Java строго передается по значению. Я все еще смущен этой концепцией. Я прошел через многие сайты, чтобы получить ответ на это, но я не могу найти веских оснований. Есть ли правильная причина, по которой Java не проходит по ссылке?Причина: почему Java не проходит по ссылке?
0
A
ответ
2
Значение «reference variable
» - это «адрес» на Java. Когда вы передаете ссылочную переменную методу, в стек помещается новая ссылочная переменная, и копия значения переданной ссылочной переменной используется для инициализации значения нового локального ссылочного значения, как и любой примитивный тип.
Это классическое определение pass by value
.
ПРИМЕЧАНИЕ: Хотя вы можете думать о ссылке в качестве адреса памяти, это не так. Основной механизм заставляет его действовать логически, как если бы он был.
КРАТКОЕ ВЕРСИЯ: ссылки являются простыми переменными, как и другие примитивные типы для целей передачи аргументов методам. То, что вы можете с ними сделать, когда-то прошло, очевидно, другое.
На каком уровне вы ожидаете ответа? Это теоретический вопрос? Вы хотите знать причины этого дизайна? –
Этот вопрос был задан перед: http://stackoverflow.com/questions/5298421/why-doesnt-java-support-pass-by-reference-like-c – JREN
Указатели и разыменование, в которых наименее интуитивно понятная часть из C++, java передает ссылку по значению, решает почти все случаи использования для пропуска C++ по ссылке, избегая при этом путаницы. –