Есть несколько причин для этого.Пара:
Во-первых, как уже отмечалось, неинициализированные переменные являются основным источником ошибок, и, хотя нецелесообразно проверять неинициализированные переменные экземпляра, компилятору довольно легко проверять и «диагностировать» неинициализированныелокальные переменные - на самом деле они выпадают без особых дополнительных усилий при анализе потока данных.
Во-вторых, инициализация локальных переменных требует времени.Переменные экземпляра могут быть «инициализированы» простым обнулением экземпляра, и это должно происходить только один раз для экземпляра (и в любом случае это должно быть сделано для «безопасности» и для целей GC), но локальные переменные выделяются здесь и там - некоторыев стеке, некоторые в регистрах, и очистка их занимает реальные циклы каждый раз, когда метод вызывается.