Как стать автором
Обновить
8
0

Пользователь

Отправить сообщение
//плохо
interface A {
    public static final String A = "a";
}

Это не только плохо, но и криво. По умолчанию, все поля интерфейса публичные, финальные и статические.

//аналогично плохо
interface A {
    String A = "a";
}
lany, vladimir_dolzhenko, 23derevo, спасибо за помощь, разобрался, почитал спецификацию.

Не понимаю людей, которые яро минусуют посты, где обсуждаются вопросы по теме. Я пытаюсь разобраться, докопаться до истины, высказывая свои мысли. Это ни в коем случаи не камень в огород знаний собеседников.
И да, я понимаю, что объекты некоторых классов имеет «особый статус» и их обработка оговорена в спецификации.
нет, здесь операторы не перегружены, потому что операции совершаются над примитивными типами, а не над объектами, в которые «завернуты» эти типы:

        Integer a = Integer.valueOf(1);
        Integer b = Integer.valueOf(2);
        Integer с = Integer.valueOf(a.intValue() + b.intValue());
        Integer d = Integer.valueOf(a.intValue() - b.intValue());
с этой реплики следует, что операции с примитивными типами «главнее» за операции с объектами, имхо
литералы числовых типов используются для создания примитивных типов, строковые литералы же используются для создания объектов класса String.

если ошибаюсь, с радостью узнаю истину :)
Оператор "+" «перегружен» для строк, потому что главное его назначение это сложения для числовых примитивных типов данных.
что-то новенькое, спасибо

а почему яндекс, а не гугл?
String habrahabr = new StringBuilder()).append(habra).append(habr).toString();


вы правы, исправил
спасибо, посмотрю, перепишу тест :)
String habr = new StringBuilder(String.valueOf("habra")).append("habr").toString();

это уточнения было в статьи
предложите свой вариант
спасибо, исправил :)
Алгоритм действительно не изменился (где-то прочитал, но не проверял тогда), спасибо.
Опечатался, спасибо. Все верно отметили.
Хотелось бы дополнить и сказать, что все ссылки на string объекты хранится в String Pool и перед созданием строки с помощью литерала проверяется нет ли эквивалентной строки в пуле, если нет — добавляется, иначе просто получаем ссылку на уже готовый объект. В случаи с new, новый объект создаться в любом случаи, независимо от пула.
это мой оригинальный текст

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность