Rumah  >  Artikel  >  Java  >  Mengapa Kelas Kompilasi Java Mempunyai Tanda Dolar?

Mengapa Kelas Kompilasi Java Mempunyai Tanda Dolar?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 18:54:29921semak imbas

Why Do Java Compiled Classes Have Dollar Signs?

Kelas Kompilasi Java dengan Tanda Dolar

Pengaturcara Java sering menghadapi konvensyen penamaan yang pelik dalam fail kelas yang disusun mereka. Sesetengah kelas mempamerkan corak ganjil nama kelas mereka diikuti dengan tanda dolar dan nombor. Contohnya, anda mungkin melihat fail seperti:

  • Find$1.class
  • Find$2.class
  • Find$3.class
  • Find. kelas

Menyelidiki Sebabnya

Bertentangan dengan kepercayaan popular, saiz kelas tidak mencetuskan tingkah laku ini. Jawapannya terletak pada kelas dalaman. Apabila kelas mengandungi kelas dalaman, pengkompil menjana fail kelas berasingan untuk kelas dalaman tersebut. Nama fail mengikut corak:

OuterClass.class
OuterClass$InnerClass.class

Kelas Dalaman Tanpa Nama

Kelas dalam tanpa nama, yang ditakrifkan tanpa nama tersuai, diberikan nombor. Ini menerangkan "Find$1.class" dan nama fail yang serupa.

Contoh

Pertimbangkan coretan kod berikut:

public class OuterClass {
    class InnerClass {
    }

    Serializable anonymous = new Serializable() {
    };
}

Pengkompil akan menjana fail kelas berikut:

  • OuterClass.class
  • OuterClass$InnerClass.class
  • OuterClass$1.class

Kelas Tanpa Nama Dipertimbangkan?

Penggunaan kelas dalaman tanpa nama telah tertakluk kepada perdebatan. Sesetengah menganggapnya sebagai bau kod, manakala yang lain berpendapat kesesuaiannya dalam senario tertentu. Akhirnya, keputusan untuk menggunakannya adalah berdasarkan keperluan reka bentuk khusus.

Atas ialah kandungan terperinci Mengapa Kelas Kompilasi Java Mempunyai Tanda Dolar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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