Каково начальное значение Java String по умолчанию? - PullRequest
49 голосов
/ 22 марта 2011

Рассмотрим строковое поле Java с именем x.Каким будет начальное значение x при создании объекта для класса x;

Я знаю, что для int переменных значение по умолчанию присваивается как 0, так как экземпляры создаютсясоздано.Но что станет с String?

Ответы [ 5 ]

100 голосов
/ 22 марта 2011

Он инициализируется нулем, если вы ничего не делаете, как и все ссылочные типы.

24 голосов
/ 22 марта 2011

Это зависит.Это просто переменная (в методе)?Или член класса?

Если это просто переменная, вы получите сообщение об ошибке, что при попытке чтения из нее не было задано значение без предварительного присвоения ему значения.

Если эточлен класса будет инициализирован нулем виртуальной машиной.

10 голосов
/ 22 марта 2011

Ответ - это зависит.

Является ли переменная экземпляром переменной / переменной класса?Подробнее см. this .

Список значений по умолчанию можно найти здесь .

7 голосов
/ 02 июня 2016

Существует три типа переменных:

  • Переменные экземпляра : всегда инициализируются
  • Статические переменные : всегда инициализируются
  • Локальные переменные : должны быть инициализированы перед использованием

Значения по умолчанию для instance и статических переменных являютсяТо же самое и зависит от типа:

  • Тип объекта (String, Integer, Boolean и другие): инициализируется с null
  • Типы примитивов:
    • byte, short, int, long: 0
    • float, double: 0.0
    • логическое: false
    • char: '\ u0000'

Массив - это Объект .Таким образом, переменная экземпляра массива, которая объявлена, но не инициализирована явно, будет иметь значение null .Если вы объявите массив int [] в качестве переменной экземпляра, он будет иметь нулевое значение.

После создания массива всем его элементам присваивается значение типа по умолчанию.Например:

private boolean[] list; // default value is null

private Boolean[] list; // default value is null

после инициализации:

private boolean[] list = new boolean[10]; // all ten elements are assigned to false

private Boolean[] list = new Boolean[10]; // all ten elements are assigned to null (default Object/Boolean value)
5 голосов
/ 22 марта 2011

Любой объект, если он инициализирован, его значение по умолчанию равно нулю, до тех пор, пока мы явно не предоставим значение по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...