Когда я создаю новую строку в Java, она инициализируется нулем или «»?

Ваш запрос очень близок. Вы должны использовать следующее, которое включает в себя subject в конечном списке выбора:

select u.name, u.subject, u.marks
from student s
unpivot
(
  marks
  for subject in (Maths, Science, English)
) u;

См. SQL Fiddle с демонстрацией

16
задан Kevin Kibler 11 May 2010 в 17:23
поделиться

5 ответов

Строка инициализируется без символов, или "".

public String() {
    this.offset = 0;
    this.count = 0;
    this.value = new char[0];
}

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

24
ответ дан 30 November 2019 в 16:24
поделиться

new String () создает строку нулевой длины. Если вы просто сказали «String foo;» как переменная-член, она будет инициализирована значением null. Если вы скажете «String foo;» как функциональная переменная не определена и приведет к ошибке компиляции, если вы попытаетесь использовать ее без присвоения значения.

4
ответ дан 30 November 2019 в 16:24
поделиться

"null" - это значение для переменной, а не значение для String. "foo" может иметь значение null, но фактическая Строка - нет. Вы создали новую пустую Строку (как сказано в документации к конструктору) и присвоили ее foo.

8
ответ дан 30 November 2019 в 16:24
поделиться

Новая строка печатается потому, что вы вызвали метод println(), который печатает строку после печати любого переданного вами аргумента. new String() вернет "".

1
ответ дан 30 November 2019 в 16:24
поделиться

Он инициализируется "" (пустая строка)

public class StringTest {
    public static void main( String [] args ) {
        System.out.println( "".equals(new String()));
    }
}

печатает:

true
3
ответ дан 30 November 2019 в 16:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: