null - не объект, а определенное место в памяти.
null == null всегда будет true.
null - значение по умолчанию ссылочных типов.
instanceof - при проверке объекта с null вернет false.
instanceof - ключевое слово для проверки объекта на соответствие к классу или его потомку.
if(a instanceof Integer){...}
if (animal instanceof Cat cat) { cat.meow(); } else if(animal instanceof Dog dog) { dog.woof(); }
if(pos instanceof Position(int x, int y)) { System.out.println("Position:" + x ", " + y)}
this - имеет два значения.
this(параметры_конструктора)
Из static классов this недоступно.
var - возможность сократить объявления переменных. Просто скрывает тип за словом var. Байт-код будет такой же. Используется для локальных переменных(внутри методов), но не в качестве полей классов.
// don't work var foo; foo = "Foo";
//don't var message = null;
//don't work! var ints = {0, 1, 2}; var appendSpace = a -> a + " "; var compareString = String::compareTo
var users = new ArrayList<User>();