Rumah > Java > javaTutorial > Mengapa kelas yang disusun Java dalam fail JAR mempunyai tanda dolar dan nombor dalam nama fail mereka?

Mengapa kelas yang disusun Java dalam fail JAR mempunyai tanda dolar dan nombor dalam nama fail mereka?

Patricia Arquette
Lepaskan: 2024-10-25 11:01:02
asal
707 orang telah melayarinya

Why do Java compiled classes in JAR files have dollar signs and numbers in their file names?

Kelas Kompilasi Java yang Mempamerkan Tanda Dolar dalam Nama Fail

Soalan:

Dalam fail JAR yang dieksport yang dibuat menggunakan Eclipse, tertentu fail kelas memaparkan nama kelas diikuti dengan tanda dolar dan nombor. Contohnya:

<code class="java">Find.class 
Find.class
Find.class
Find.class</code>
Salin selepas log masuk

Adakah ini akibat daripada pengehadan saiz kod, di mana kelas yang lebih besar dipecahkan kepada beberapa yang lebih kecil? Carian dalam talian yang meluas tidak menghasilkan maklumat yang berkaitan. Bolehkah seseorang memberikan penjelasan?

Jawapan:

Fail kelas tambahan ini adalah hasil daripada kelas dalaman dalam kelas asal. Kelas dalam bersarang dalam kelas luar dan diisytiharkan menggunakan kata kunci kelas:

<code class="java">public class OuterClass {
    public class InnerClass {
        // Nested code
    }
}</code>
Salin selepas log masuk

Apabila kelas yang mengandungi kelas dalam disusun, fail kelas berasingan dijana untuk setiap kelas dalam, mengikut konvensyen penamaan OuterClass$InnerClass .kelas. Kelas dalaman tanpa nama (yang tanpa nama) diberikan pengecam berangka, menghasilkan nama fail seperti OuterClass$1.class.

Bertentangan dengan kepercayaan popular, saiz kelas asal tidak mempengaruhi penciptaan berbilang fail kelas . Kehadiran kelas dalaman adalah satu-satunya sebab untuk tingkah laku ini.

Atas ialah kandungan terperinci Mengapa kelas yang disusun Java dalam fail JAR mempunyai tanda dolar dan nombor dalam nama fail mereka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan