Каждый объект в Java должен быть создан с помощью конструктора некоторого класса, за исключением нескольких примитивных классов, таких как String, которые имеют специальные правила размещения. Даже на самом базовом уровне вы всегда можете позвонить
Object o = new Object();
и поскольку все объекты в Java наследуются от суперкласса Object, большинство объектов наследуют конструктор по умолчанию.
Исключением является случай, когда класс имеет только закрытый конструктор - тот, который не может быть вызван никакими внешними классами. В этом случае, поскольку конструктор по умолчанию больше не нужен, он также не будет доступен.
class MyClass
{
private MyClass()
{
//cannot be called by outside classes
}
}
В общем, это используется либо для чисто статических классов (которым не нужны экземпляры), либо для объектов Singleton (которые хотят ограничить создание экземпляров) Поэтому все объекты создаются из некоторого конструктора, но не все классы обязательно имеют пригодный для использования конструктор.