it's also about the level of control over what is happening. If the declaration of an object/variable automatically calls a constructor e.g. if
Person somePerson; was automatically the same as
Person somePerson = new Person(blah, blah..); then you'd never be able to use (for example) static factory methods to instantiate objects rather than default constructors i.e. there are times when you don't want to call a constructor for a new object instance.
This example is explained in Bloch's "Effective Java" (Item 1 ironically enough!)