Я родом из C/C++.
Когда я могу говорить о указателях на Java? Когда о ссылках? Могу ли я сказать, что переменная типа Object
содержит ссылку на некоторые данные, т.е. к экземпляру класса? Что эта переменная указывает на экземпляр класса?
Если Java всегда копируется по значению, то если я передаю эту предшествующую переменную функции в качестве параметра, а сама переменная сама копируется, ее содержимое по-прежнему ссылается на экземпляр класса, так что любым практическим способом это не было действительно копией по значению, поскольку экземпляр класса не был скопирован, но ссылка была, правильно?
Что раздражают разработчиков Java, чтобы слушать, когда разговаривали с разработчиками C/C++ в этом контексте?
Это как-то сложно сформулировать вопрос, я надеюсь, мне удалось понять суть.
Обновление Чтобы переформулировать: могу ли я говорить о ссылках и указателях с использованием значения, которое я узнал, изучая C/C++, и не сомневаюсь, что разработчики Java набирают то же значение, что и я, вкладывая в него?
Обновление 2 Итак, было бы правильно предположить, что слово "указатель" бессмысленно/не должно использоваться в Java?
Это будет легче понять, если вы сначала поймете, что хранится в памяти (Stack vs Heap), так как у вас минимальный контроль над управлением памятью по сравнению с C++. Как только это окажется в стороне, будет легче понять, какое значение и какой ссылочный тип и как проходят по значению и проходят по ссылке. Java строго передается по значению, но не каждый тип данных является типом значений. Надеюсь, это поможет. Это хорошее начало: http://www.journaldev.com/4098/java-heap-memory-vs-stack-memory-difference