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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сколько объектов будет создано 
V
    Опции темы
Dummy
Дата 12.1.2012, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Pretorian @  12.1.2012,  10:38 Найти цитируемый пост)
Вот кстати документация об одинаковых литералах в коде JLS 3.10.5 

Это не о том. Это об интернировании строковых констант. А в примере с boolean/Boolean речь идет о кэшировании результатов автобоксинга, которые работают и для не-констант.
PM MAIL   Вверх
Samotnik
Дата 12.1.2012, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Цитата(dobrolub @  11.1.2012,  22:41 Найти цитируемый пост)
Повторю твой вопрос: "сколько объектов будет создано"?

Объект Boolean.TRUE (b1-b10) создаётся раньше чем твой код выполняется. Поэтому правильный ответ - 4 объекта создано ТВОИМ кодом.

Не понимаю, почему ты делишь на твой код и не твой. Вот представь, проходишь ты SCJP, там такой вопрос, только на инглише, и варианты ответов: 
  • 4
  • 5
  • 14
Ты отвечаешь 4, а машина тебе засчитывает не верный ответ. Кому ты потом будешь объяснять где твой код, а где нет?  smile 

PM MAIL   Вверх
Samotnik
Дата 12.1.2012, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Ок, с числами разобрались. Кто может пояснить действия строк?
Код

public class Main {
    public static void main(String ... args) {
        String str1 = "Hello";
        String str2 = "Hello";
        
        str1 += 1;
        str2 += 1;
        System.out.println(str1 == str2);
        
        str1 = "world";
        str2 = "world";
        System.out.println(str1 == str2);
    }
}

Почему тут не два раза true? Почему идея кэширования объектов, в первом случае не работает? Из-за конкатенации?
PM MAIL   Вверх
jk1
Дата 12.1.2012, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

Почему идея кэширования объектов, в первом случае не работает? Из-за конкатенации? 


Из-за нее. Там в неявном виде будет создан StringBuffer и у него после вычислений будет вызван toString(). Интернирования во всей этой механике не предусмотрено.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Samotnik
Дата 12.1.2012, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



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

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

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


 




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


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

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