Java Sanal Makinesi - Sınıf Yükleyici

JVM, sınıfları ve arabirimleri dinamik bir şekilde yükleme, bağlama ve başlatma sürecini yönetir. Yükleme işlemi sırasında,JVM finds the binary representation of a class and creates it.

Bağlama işlemi sırasında, loaded classes are combined into the run-time state of the JVM so that they can be executed during the initialization phase. JVM, temel olarak bağlama işlemi için çalışma zamanı sabit havuzunda depolanan sembol tablosunu kullanır. Başlatma aslında şunlardan oluşur:executing the linked classes.

Yükleyici Tipleri

BootStrapsınıf yükleyici, sınıf yükleyici hiyerarşisinin en üstündedir. Standart JDK sınıflarını JRE'nin lib dizinine yükler .

Extension sınıf yükleyici, sınıf yükleyici hiyerarşisinin ortasındadır ve önyükleme sınıfı yükleyicinin hemen alt öğesidir ve sınıfları JRE'nin lib \ ext dizinine yükler.

Applicationsınıf yükleyici, sınıf yükleyici hiyerarşisinin en altındadır ve uygulama sınıfı yükleyicinin hemen alt öğesidir. Tarafından belirtilen kavanozları ve sınıfları yükler.CLASSPATH ENV değişken.

Bağlanıyor

Bağlama süreci aşağıdaki üç adımdan oluşur -

Verification- Bu, oluşturulan .class dosyalarının (Bytecode) geçerli olduğundan emin olmak için Bytecode doğrulayıcı tarafından yapılır. Değilse, bir hata atılır ve bağlama işlemi durur.

Preparation - Bellek, bir sınıfın tüm statik değişkenlerine tahsis edilir ve bunlar varsayılan değerlerle başlatılır.

Resolution- Tüm sembolik bellek referansları orijinal referanslarla değiştirilir. Bunu başarmak için, sınıfın yöntem alanının çalışma zamanı sabit belleğindeki sembol tablosu kullanılır.

Başlatma

Bu, sınıf yükleme sürecinin son aşamasıdır. Statik değişkenlere orijinal değerler atanır ve statik bloklar çalıştırılır.