![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Tamerlann |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 10.11.2002 Где: Минск, Беларусь Репутация: 2 Всего: 2 |
Как это нет? А что же тогда хранится в массиве:
Другое дело, что с этими адресами ничего сделать нельзя, кроме как получить доступ к объекту по этому адресу. (т.е. нельзя произвольно поменять адрес и т.д.)
Не понял? А подробнее можно, пожалуйста? Зачем?! Это сообщение отредактировал(а) Tamerlann - 18.2.2005, 18:30 --------------------
http://timursdev.blogspot.com/ |
||||||
|
|||||||
| Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Глубокое замечание
Ссылок тоже, кстати, нет (в С++ смысле), потому все-таки я предпочитаю думать о них как о защищенных указателях. NotGonnaGetUs , зарегистрируйся пожалуйста. -------------------- |
||||
|
|||||
| NotGonnaGetUs |
|
||||||
|
Unregistered |
Переменные с типом Object и именами objs[0], objs[1]....
Что бы JVM могла дефрагментировать память по своему усмотрению и не тратила время на поиск всех переменных ссылающихся на данный объект для их модификации. Это детали реализации SUN JVM, в других реализациях этого может не быть. ---- Говорить о сслыках, памяти и т.п. можно в рамках теории алгоритмов, которая не зависит от языков (в рамках модели выч.машины предложенной Кнутом). В этих терминах доказывается, что массив это трукутра в которой доступ к элементу осуществляется за o(1), двусвязный список - o(n), сортированое дерево - o(lonN) и т.п. Можно говорить в рамках конкретного языка - например С++ - выясняя как размещаются в памяти объекты, что бы потом можно было играться с арифметикой указателй. Но это уже совсем другое дело, к теории алгоритмов имеет отдалённое отношение. Если связывать теорию алгоритмов и java, то достаточно постулировать, что доступ к значению перменной и элементу массива осуществялется за o(1). Всё. Далее термин указатель может использоваться по его истинному значению: "указывать на что-то", а не "быть адресом ячейки памяти". Говоря, что в java есть указатели, но их обрезали, вы пытаетесь объяснить новое в терминах старого. Так поступал Ломоносов, представляя молекулы шестерёнками и используя механику для проведения вычислений. Результаты могут быть верны, но далеко не всегда Смысл слова "ссылка" в java ровно один: где-то существует САМ объект и перменные только указывают на него, не важно каким способом (адрес, уникальное ID, ссылка на клон объекта синхронизируемая с исходным объектом автоматически). Нет перменной, которая БЫЛА БЫ объектом. Лезть в детали конкретной реализации и говорить - перменная = указатель - глупо. В другой реализации это будет не так, а язык останется языком. |
||||||
|
|||||||
| NotGonnaGetUs |
|
|||
|
Unregistered |
Мне нравится красный цвет ника |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
pointer переводится как "указатель" -------------------- |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Еще раз: абсолютно все равно как реализованы поинтеры в Java, пусть хоть как указатели на указатели на указатели. Спецификация ничего об этом не говорит.
Есть 2 понятия - указатель (поинтер) и ссылка. Ссылка (в С++, C#) позволяет передавать не копию указателя на объект, а сам указатель. Благодаря этому можно сделать в шарпе
С поинтером такое не пройдет. Поэтому понятие "ссылка" в Java несколько сбивает с толку. Поэтому я и понимаю под ссылкой "защищенный поинтер". -------------------- |
|||
|
||||
| Guest |
|
||||||
|
Unregistered |
Знания каждого человека обременены опытом. Он накладывает на каждое слово дополнительный груз. То, что ты написал развязывает противоречия вокруг значений связанных со словом ссылка и указатель в твоей голове. Для другого человека это всё может показаться бредом :) Наверное как и то, что написал я. Спецификация java, по-существу, говорит что есть объект и есть переменные которые на него указывают. Какими прелагательными это обзывать сслыка на объект, узкатель на объект - не имеет разницы. Главное понимать суть и не путать с адресом в памяти или чем-то там ещё &) btw,
j - тоже будет указывать на 9? Если нет, то и разницы между ссылками в С++ и перменными java по сути нет. Просто в с++ есть доп. оператор ref :) Надеюсь при вызове Change(i); i - не клонируется? :) |
||||||
|
|||||||
| NotGonnaGetUs |
|
|||
|
Unregistered |
это я написал |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Если хочешь общаться - зарегистрируйся. Не хочешь - дело твое, но мне это кажется просто неуважением к собеседникам.
Я с анонимами общаться не хочу, работай они хоть с самой библиотеки мфти. -------------------- |
|||
|
||||
| Tamerlann |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 10.11.2002 Где: Минск, Беларусь Репутация: 2 Всего: 2 |
Но эти самые переменные "указывают" или ещё никуда (null), или на объект. В этом плане - указатель А вообще:
Это точно. Все равно говорим об одном и том же. Кокое из названий мы бы не употребляли далее, все же разберемся о чем речь. Это сообщение отредактировал(а) Tamerlann - 19.2.2005, 15:04 --------------------
http://timursdev.blogspot.com/ |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |