Rumah > Java > javaTutorial > teks badan

Apakah perubahan kepada pemuat kelas dalam Java 9?

WBOY
Lepaskan: 2023-08-30 15:37:02
ke hadapan
710 orang telah melayarinya

Java 9中的类加载器有哪些变化?

Semua program java dijalankan pada Java Virtual Machine (JVM). Selepas penyusunan, kelas java ditukar kepada platform dan kod bait bebas mesin dan kelas yang disusun disimpan sebagai .class#🎜.🎜 #dokumen. Setiap kali kita cuba menggunakannya, ClassLoader akan memuatkan kelas ke dalam ingatan. Kelas-kelas ini diperkenalkan ke dalam persekitaran Java apabila ia dirujuk dengan nama. Sebaik sahaja kelas mula berjalan, pemuatan kelas dilakukan oleh pemuat kelas, dan kaedah main() ialah salah satu cara untuk memulakan kelas.

Terdapat beberapa perubahan kecil pada pemuat kelas dalam Java 9: ​​​​

  • Pemuat kelas sistem tidak tersedia dalam Java 9 Wujud sekali lagi, ia adalah contoh >URLClassLoader, tetapi kelas dalaman. Ia ialah pemuat lalai untuk kelas dalam modul.
  • Extension ClassLoader telah dinamakan semula kepada Platform ClassLoader. Semua kelas dalam platform Java SE boleh dilihat melalui pemuat kelas platform, dan kelas yang berada dalam modul di bawah proses komuniti Java tetapi bukan sebahagian daripada platform Java SE juga boleh dilihat melalui pemuat kelas platform.
  • Application tidak boleh bergantung pada pemuat kelas yang mentakrifkan kelas platform mana Sesetengah kelas dalam platform Java SE ditakrifkan oleh pemuat kelas platform, manakala kelas lain Ia ditakrifkan oleh Pemuat kelas Bootstrap.
  • Jika pemuat kelas yang dicipta oleh kod sedia ada menggunakan pemuat kelas bootstrap sebagai pemuat kelas induk, maka kita perlu menukar Untuk menggunakan kelas platform pemuat sebagai pemuat kelas induk.
  • Pemuat Kelas Platform bukan contoh URLClassLoader, tetapi kelas dalaman.
  • Pemuat kelas but ialah > Pemuat kelas terbina dalam JVM . Walau bagaimanapun, ia mentakrifkan kelas untuk modul utama, seperti base. Aplikasi yang digunakan menggunakan -Xbootclasspath/a atau aplikasi yang menggunakan null sebagai ibu bapa mungkin perlu ditukar.
  • ul>Contoh

    public class ClassLoaderTest {
       public static void main(String args[]) {
          System.out.println("Class Loader Test");
          ClassLoaderTest test = new ClassLoaderTest();
          try {
             test.showClassLoaders();
          } catch(ClassNotFoundException cnfe) {
             System.out.println(cnfe.getMessage());
          }
       }
       public void showClassLoaders() throws ClassNotFoundException {
          System.out.println("Classloader of this class: " + <strong>ClassLoaderTest.class.</strong><strong>getClassLoader()</strong>);
          System.out.println("Classloader of Permission: " + <strong>java.sql.SQLPermission.class.</strong><strong>getClassLoader()</strong>);
          System.out.println("Classloader of LinkedList: " + <strong>java.util.LinkedList.class.</strong><strong>getClassLoader()</strong>);
          return;
       }
    }
    Salin selepas log masuk

    Output

    <strong>Class Loader Test
    Classloader of this class: jdk.internal.loader.ClassLoaders$AppClassLoader@504bae78
    Classloader of Permission: jdk.internal.loader.ClassLoaders$PlatformClassLoader@299a06ac
    Classloader of LinkedList: null</strong>
    Salin selepas log masuk

Atas ialah kandungan terperinci Apakah perubahan kepada pemuat kelas dalam Java 9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan