Что касается вашего примера
String str = new String();
str = "hello";
Включает в себя как реализацию, так и инициализацию.Первая строка создает экземпляр String и инициализирует ее пустой строкой, что означает, что если вы сделаете System.out.println
, вы увидите пустое значение, а не null
.
Вторая строка создает экземпляр константы String
в пуле строк и инициализирует str
с этим значением.
По вашему вопросу о Spring Lazy Initialization, Spring Context использует отложенную инициализацию для ускорения времени запуска.В Spring Bean in инициализируется только тогда, когда его сначала запрашивают из контекста Spring.Помните, что инициализация всегда происходит после создания экземпляра.