Unfortunately, in many tutorials, books and other resources about Java, the terms "object" and "variable" are used in a sloppy way, which can lead to confusion similar to what you describe in your question.
For example, look at this line of code:
String message = "Hello World";
People will often say "I have a String object named message here with the value "Hello World". This is wrong and it makes beginners think that objects and variables are the same thing, and that objects have names.
Accurate would be: "I have a variable named message here which is a reference to a String object with the value "Hello World".
Variables and objects are not the same thing. A variable* is not an object, it's a reference to an object (it's a pointer to an object somewhere in memory).
Variables have names. In the code above, there is a variable named message. Objects do not have names.
There is also not a one-to-one correspondence between variables and objects. Multiple variables may refer to the same object.
The value null is a special value that you can assign to variables* that means "this variable refers to no object". It's just like a null pointer in languages such as C and C++.
It doesn't really make sense to talk about null being an object. It's not an object, it's a special reference value to make variables refer to "no object".
If null can be assigned to any Object type
This is why I suspect you're confused about the difference between objects and variables: you do not assign null to an object, but to a variable (of "any object type" which is the same as "of a non-primitive type").
*: we're talking about variables of non-primitive types here
For a more advanced understanding:
The value null has a bit of a bad reputation (it's the cause of many bugs). You might want to use java.util.Optional to help prevent some of the problems that null causes.
See also the null object pattern, which is a design pattern about the idea of having a special object that represents "the empty value". This might be useful in special situations.