Подтвердить что ты не робот

Java - это `null` экземпляр` object`?

Я читал, что null не является instanceof чем угодно, но, с другой стороны, все в Java расширяет класс Object.

4b9b3361

Ответ 1

Нет, это reference. null не является объектом

String s = null;

System.out.println(s instanceof Object); // false

Ответ 3

Существует также специальный нулевой тип, тип выражения null, который имеет без имени. Поскольку нулевой тип не имеет имя, невозможно объявить переменная нулевого типа или к нулевому типу. Нулевая ссылка является единственным возможным значением выражение нулевого типа. Нулевой ссылка всегда может быть передана любому ссылочный тип. На практике программист может игнорировать нулевой тип и просто притворяйтесь, что null - это просто специальный литерал, который может быть любого ссылочный тип

Спецификация языка Java

Ответ 4

Нуль означает, что у вас нет ссылки на объект.

Object o = null;

o является ссылкой, но нет ссылки на объект и не выделяется память для него.

o = new Object();

o по-прежнему является ссылкой и содержит адрес, где объект находится в памяти

Ответ 5

Нет, null не является объектом. Это литерал, который означает, что переменная не ссылается ни на какой объект.

Ответ 6

Как показывает JLS, null имеет нулевой тип и не является ссылочным типом. Однако он может использоваться в ситуациях, когда ожидается значение ссылочного типа (значение действительно является "дном" в алгебре типов).

Ответ 7

Надеясь, что этот пример очистит ваши сомнения:

public void printObject(Object object) {
    System.out.println("object referred");
}

public void printObject(double[] doubleArray) {
    System.out.println("Array of type double");
}

public static void main(String[] args) {
    JavaNullObjectTest javaNullObjectTest = new JavaNullObjectTest();

    javaNullObjectTest.printObject(null); //Array of type double

    javaNullObjectTest.printObject((Object)null); //object referred
}

Мы можем, но преобразовать 'null' в объект.