Если на клетке слона прочтёшь надпись «буйвол», не верь глазам своим. (ц)
nightmare2 wrote:
Не верите мне, вот вам цитаты из википедии.
In computer science, a reference is a value that enables a program to indirectly access a particular datum, such as a variable or a record, in the computer's memory or in some other storage device.
...
In computer science, a pointer is a programming language object, whose value refers to (or "points to") another value stored elsewhere in the computer memory using its address.
Ну и чём под это определение не подходят Java references?
Code: Select all
String s1 = "123"; // s1 points to an object of type String that's stored somewhere
String s2 = s1; // s2 points to the same object
Кстати, уточните пожалуйста, в чём отличие вышеприведённых определений указателя и ссылки? Так, чтобы C++ pointer подходил под одно, а C++ reference - под другое.
nightmare2 wrote:
В Java невозможно передать параметр функции как ссылку на объект по ссылке (каламбур, однако).
Вы ничего не перепутали? В Java невозможно передать объект в функцию не по ссылке. Обязательно получится ссылка. Её так называют в Java, хотя по поведению такой параметер похож на C++ указатель - его можно изменить, т.е. указать на другой объект. C++ параметер по ссылке всегда указывает на один объект.
nightmare2 wrote:Т.е. фактически, ссылки в Java на объекты - это внутенний механизм, на который программист не имеет никакого влияния, в отличие от указателей в других языках.
В C/C++ указатели/ссылки - тоже внутренний механизм, просто C/C++ позволяют сделать многое из того, что делать нельзя, а в Java есть много ограничений, что и как можно использовать.