Почему значение по умолчанию для Java для Boolean установлено в true?

Почему private Boolean shouldDropTables; присваивает true по умолчанию переменную вместо NULL, например, при записи private Integer anInteger;?

Запрашивать, потому что я натолкнулся на какой-то код, где была оценка в shouldDropTables NULL или не определена, следует ли выполнять метод.

Ответ 1

Boolean (с верхним регистром "B" ) является логическим объектом, который, если не назначен значение, по умолчанию будет иметь значение null. boolean (с нижним регистром "b" ) является логическим примитивом, который, если не назначен значение, будет по умолчанию false.

Boolean objectBoolean;
boolean primitiveBoolean;

System.out.println(objectBoolean); // will print 'null'
System.out.println(primitiveBoolean); // will print 'false'

Удачи!

Ответ 2

Нет.

Его null по умолчанию.

Ответ 3

Свойство NULL по умолчанию. Потому что это Boolean Object.

Object 'Boolean' =  NULL value         // by default,   
Primitive type 'boolean'  = false value //by default.

Ответ 4

Возможно, вы не видите инициализацию.

По умолчанию он имеет значение null. См. Этот пример:

$ cat B.java
class B {
        private Boolean shouldDrop;
        public static void main( String ... args ) {
                System.out.println( new B().shouldDrop );
        }
}

$ javac B.java

$ java B
null

Я надеюсь, что это поможет

Ответ 5

Просто хотел добавить одну точку (для новичков) относительно примитивного логического значения.

Как ответил @99tm, значение по умолчанию "false". Это верно для переменных экземпляра или класса.

Если у вас есть локальная переменная метода (то есть локальная для метода) как примитивная логическая, то значение по умолчанию отсутствует. вам необходимо инициализировать его перед его использованием, иначе это ошибка компиляции.

Ответ 6

JLS 9, 4.12.5. Начальные значения переменных

  • Для типа boolean значение по умолчанию - false.

  • Для всех ссылочных типов (§4.3) значение по умолчанию равно null.

Boolean является ссылочным типом, поэтому значением по умолчанию является null.