Object is a superclass of ClassName, in fact, it's the top-most class of all classes you create. Java allows you to use a subclass as if it were an instance of a superclass (it has the same methods, although they might be overriden).
The difference lies in how you can use them. In the first case, the compiler will see obj as a reference of type Object and the reference actually points to an instance of type ClassName. In your second case, your compiler will see obj1 as a reference of type ClassName and the reference points to an instance of type ClassName.
In the first case, you won't be able to call any methods declared in the subclass, since the type Object doesn't actually contain these methods (and the compiler won't know about them), whereas you can use the second way to call methods and access fields declared in the subclass.