Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> new операция, объявление объектов, операция new 
:(
    Опции темы
priam220
Дата 25.9.2010, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



Предлагаю тут рассматривать все вопросы касающиеся создания объектов, их объявлению, распределению памяти под объекты. 
Для начала вот такой вопрос:
Код


package test;

public class A{
    A a;
    public A(A a){
        this.a = a;
    }

public static void main (String arg[]){
    A a1 = null;
    A a2 = new A (new A(null));
    A a3 = new A(a2);
    a1=a3;
    a1.a=new A(null);
    a2.a=null; 
    System.gc();
}
}

1. сколько объектов будет создано до того как будет запущен Garbage Collector
2. сколько объектов будет удалено, после выполнения строки 15  (how many objects are eligible for the Garbage Collector after executing the line 12)
И как это можно проверить? 

Это сообщение отредактировал(а) priam220 - 25.9.2010, 16:29
PM MAIL   Вверх
DenWPF
Дата 25.9.2010, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



4 каждый new создает объект.
PM MAIL   Вверх
priam220
Дата 25.9.2010, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



просто мне казалось, что существует оптимизация в java и подобные объекты будут иметь один адрес, так ли это? В любом случае хотелось бы как то удостовериться в этом... Может кто знает как?
PM MAIL   Вверх
DenWPF
Дата 25.9.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



ну так это другой вопрос. 
я конечно ещё в этом не сильно шарю, но 
Код

 A a1 = null;
a1=a3;

нового объекта не будет, будет просто два одинаковых объекта(точнее будет два имени одного и того же объекта)
PM MAIL   Вверх
priam220
Дата 25.9.2010, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



DenWPF,  это да. Но есть два одинаковые объекта new A(null). Вполне возможно, что бы не тратить место, java может создать один...
PM MAIL   Вверх
priam220
Дата 25.9.2010, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



думаю, что объекта все же будет создано четыре, т.к. не нашел достоверной информации по оптимизации адресного пространства, а удален будет только один объект (в строке 11 он стоит вторым), т.к. в строке 15 от него явно отвязывается единственная ссылка. Поправьте если не прав. 

PM MAIL   Вверх
jGorets
Дата 25.9.2010, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 11.7.2010

Репутация: нет
Всего: нет



тут наверно стоит сначала понять назначения оператора new, по идеи, он создает экземпляр объекта, проще говоря, копию, с которой ты можешь работать, а запись А а - просто создает не инициализированную переменную типа А.
PM MAIL   Вверх
priam220
Дата 25.9.2010, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



jGorets,  именно так и есть, к бабке ходить не надо.  smile 
PM MAIL   Вверх
alivesubstance
Дата 26.9.2010, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 22.9.2008
Где: СПб

Репутация: нет
Всего: нет



Задачка явна из сертификации. И что всего 2 варианта ответа? 
Тут вообще-то в рантайме NPE вывалится!  smile  
PM MAIL ICQ Skype   Вверх
priam220
Дата 26.9.2010, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



задачка оттуда; ничего не вываливается, да и  не должно.

Это сообщение отредактировал(а) priam220 - 26.9.2010, 11:59
PM MAIL   Вверх
danilka
Дата 29.9.2010, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.1.2010

Репутация: нет
Всего: нет



4
2
PM MAIL   Вверх
LSD
Дата 29.9.2010, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 209
Всего: 537



Цитата(priam220 @  25.9.2010,  17:14 Найти цитируемый пост)
просто мне казалось, что существует оптимизация в java и подобные объекты будут иметь один адрес, так ли это? В любом случае хотелось бы как то удостовериться в этом... Может кто знает как? 

Никакой оптимизации для new не существует. Сколько экземпляров запросили столько и будет создано.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
priam220
Дата 29.9.2010, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



danilka,  и где второй объект, который удалит мусорщик?
PM MAIL   Вверх
danilka
Дата 30.9.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.1.2010

Репутация: нет
Всего: нет



Цитата(priam220 @  29.9.2010,  19:46 Найти цитируемый пост)
и где второй объект, который удалит мусорщик? 


Первый объект a2, второй a2.a

PM MAIL   Вверх
priam220
Дата 30.9.2010, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



Цитата

Первый объект a2, второй a2.a

ну с a2.a понятно. А с чего ты взял что a2 будет удален?

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1615 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.