Java Sınıf Yükleyicisi Nedir? (2026 Açıklayıcı)

Bir Java sınıf yükleyicisi, sınıf dosyalarını bulur ve çalışma zamanında JVM'ye yükler. İşte yaptığı şey, yükleyici hiyerarşisinin nasıl çalıştığı ve modların buna neden güvendiği.

Conceptsby trqUpdated June 4, 2026
Key takeaways
  • Bir sınıf yükleyicisi bir sınıf dosyasını bulur ve programın kullanabilmesi için onu JVM'ye yükler.
  • Sınıflar, başlangıçta değil, ilk kullanıldığında yüklenir ve yükleyici her seferinde bytecode'u bulur.
  • Yerleşik yükleyiciler, yukarıya doğru devredilen (bootstrap, platform, uygulama) bir üst dizi oluşturur.
  • Özel sınıf yükleyicileri, Minecraft modlarının sınıf yüklenirken oyun sınıflarını yamamasına olanak tanır.

Bir sınıf yükleyicisi, Java çalışma zamanının bir parçasıdır ve bir sınıf dosyasını bulup JVM'ye yükleyerek programın kullanabilmesini sağlar. Sınıflar başlangıçta tamamen yüklenmez. JVM, her birini ihtiyaç duyulduğunda ilk kez yükler ve bir sınıf yükleyicisi, bytecode'u bulan, okuyan ve JVM'ye teslim eden şeydir. Minecraft Java Edition, tam olarak bu mekanizma üzerine kuruludur.

Opal Nerede Çalışır

Opal, bir Fabric modudur ve Fabric, oyunun kendi sınıf yükleyicisi aracılığıyla yüklendiğinden, modlar sınıf dosyalarını yüklenme sırasında değiştirebilir. Kurulum rehberi, kurulumunu adım adım anlatır.

Bir sınıf yükleyicisi aslında ne yapar

Bir sınıf yükleyicisi, bir sınıf adını çalışan JVM içinde kullanılabilir bir sınıfa dönüştürür. Bir tür için talepte bulunursunuz, yükleyici eşleşen .class baytlarını bulur ve JVM bu türü bellekte tanımlar.

İşlem üç adımda gerçekleşir. Yükleyici, adlandırılmış bir sınıf için bayt kodunu bulur. JVM bunu doğrular ve bağlar. Ardından sınıf kullanıma hazırdır. Bir Java programının derleme zamanında bahsetmediği kodu içe aktarabilmesinin nedeni budur: yükleyicinin bulması için ad yeterlidir.

Yükleyici hiyerarşisi

Sınıf yükleyicileri bir üst zincir şeklinde düzenlenmiştir ve bunların çoğu önce üst öğesine başvurur. Standart bir uygulamada, üst üste yığılmış üç yerleşik yükleyici bulunur.

YükleyiciYükler
BaşlatıcıÇekirdek Java çalışma zamanı sınıfları
PlatformÇekirdek dışında standart kütüphane modülleri
UygulamaSınıf yolundan programınızın kendi sınıfları

Uygulama yükleyicisi bir sınıf için istendiğinde, normalde önce yukarıya devretmeye başlar. Üst öğe yükleme şansına sahip olur ve ancak hiçbir üst öğe yükleyemezse çocuk denemeye başlar. Buna devretme modeli denir ve çekirdek türlerinin tüm program genelinde tutarlı kalmasını sağlar.

Sınıf kimliği ve özel yükleyiciler

Bir sınıf hem adı hem de onu tanımlayan yükleyici tarafından belirlenir. İki yükleyici aynı ada sahip bir sınıfı yükleyebilir ve JVM bunları iki farklı tür olarak ele alır. Bu bir detay gibi gelebilir, ancak sınıf yükleyicilerinin güçlü olmasının tam nedeni budur.

Programlar kendi sınıf yükleyicilerini tanımlayabilir. Özel bir yükleyici, bytecode'u herhangi bir yerden okuyabilir: bir jar dosyasından, ağdan, oluşturulmuş bir byte dizisinden, hatta yol boyunca dönüştürdüğü bytecode'dan. Bu, eklenti sistemlerinin, uygulama sunucularının ve mod çerçevelerinin, ana programın derleme zamanında bilmediği kodu yüklemesinin yoludur.

Bunun Minecraft modları için neden önemli olduğu

Modlar özel sınıf yüklemesi sayesinde var olur. Minecraft için bir mod yükleyici, oyunun kendi sınıf yükleyicisi aracılığıyla başlamasını sağlar, böylece oyun sınıflarını yüklenirken görebilir ve değiştirebilir. Bytecode yamalamasının gerçekleştiği yer tam da bu bağlantı noktasıdır.

Bir yükleyici disk ile JVM arasına oturduğunda, JVM onu tanımlamadan hemen önce bir sınıfı dönüştürebilir. Bir mod, oyun yöntemini yeniden yazabilir, yeni davranışlar ekleyebilir veya alanlar ekleyebilir; oyunun diskteki değiştirilmiş bir kopyası olmadan. JVM'nin sonunda çalıştırdığı sınıf, yamalanmış olanıdır. Bunun daha geniş resimdeki yeri hakkında bilgi için Minecraft mod yükleyici nedir? bölümüne bakın.

SSS