Tüm Java kodu bir iş parçacığı bağlamında çalışır . Bağlantılı JavaDoc hata işleme ve çıkış ölçütlerini açıklar, ancak işte bunun özü:
- JVM kendini geliştirir ve yürütme ortamını hazırlar.
- JVM
main()
, uygulanabilir olan komut satırı parametrelerini kullanarak yöntemi çalıştıracak bir iş parçacığı oluşturur .
- JVM, özel durumu standart hataya yazdıran ve sonlandıran varsayılan yakalanmamış bir özel durum işleyici ayarlar.
- JVM iş parçacığını yürütür.
Yakalanmayan bir istisna durumunda, program yukarıdaki üçüncü kalem için etkili bir şekilde ölür. Bu davranış Java Dil Belirtimi, Bölüm 11.3'te ayrıca belirtilmiştir
ilave bilgi
Diğerleri statik bloklardan ve daha önce nasıl çalıştıklarından bahsetti main()
. Ancak, bu doğru anlamak için biraz daha açıklama gerektirir.
Bir sınıf yüklerken, sınıf yükleyicisi tüm başlatması gerektiği static final
durum ve tüm çalışma static
blok önce sınıf kenara sınıf (başlatmasını örneklerini kapsayacak şekilde kullanılabilir: bir sınıf sabitidir statik blok başlatıldı bir Java sınıfı oluşturmak sonra bir oluşturma sınıf örneği ve yapıcı sabit. Boom!) başvurur. Ancak, tüm kodlar sınıfa başvuru yapmadan önce sınıf yükleyici mantığında gerçekleşir . Ayrıca, sınıf, sınıfa başvurulan her iş parçacığına yüklenir.
Bunun anlamı, main()
başka bir sınıfa (örn. Sınıf sabiti) sahip sınıfın statik bloklarını içermek için yürütmeden önce bu sınıfın yüklenmesi gerektiğidirmain()
. Aksi takdirde, statik bloklar yukarıdaki gibi yürütülür. Sınıf yüklenemezse, içeren sınıf main()
da yüklenemez ve program sonlanır.
Başka Bilginize: Statik bloklar olabilir atmak. Errors
olduğu gibi atılır. Exceptions
yasaklanmıştır (derleme zamanı hatası). ExceptionInInitializerErrorRuntimeExceptions
içine sarılır . Bunlar, sınıf referansını (ve yüklemeyi) bir - içine dikkatlice sarmadıkça, genellikle iş parçacığını veya uygulamayı (ana iş parçacığı) öldürecek olan yakalanmamış özel durum işleyicisi başına işlenir .try
catch