Kas yra klasÄs failas?
KlasÄs failas Java yra sukompiliuota .java klasÄs iÅ¡vestis, kuriÄ
iÅ¡ tikrųjų vykdo Java virtuali maÅ¡ina (JVM). KlasÄs failai gali bÅ«ti vykdomi atskirai, taip pat gali bÅ«ti JAR failo dalis kaip paketas kartu su kitais paketo failais. Juos galima sukurti naudojant komandų eilutÄs sÄ
sajos komandÄ
javac. Kai kurios Java IDE, tokios kaip Eclipse ir NetBeans, leidžia sukurti .class išvesties failus iš projekto Java failų.
KlasÄs failo formatas
Java klasÄs failÄ sudaro baitinis kodas, kuris yra tarpinis kodas, kurį paleidžia JVM. KlasÄs failÄ sudaro 8 bitų baitų srautas, o kelių baitų duomenų elementai visada saugomi didele tvarka.
ClassFile struktūra
KlasÄs failo struktÅ«ra yra tokia, kaip parodyta žemiau.
ClassFile {
u4 magic;
u2 minor_version;
u2 major_version;
u2 constant_pool_count;
cp_info constant_pool[constant_pool_count-1];
u2 access_flags;
u2 this_class;
u2 super_class;
u2 interfaces_count;
u2 interfaces[interfaces_count];
u2 fields_count;
field_info fields[fields_count];
u2 methods_count;
method_info methods[methods_count];
u2 attributes_count;
attribute_info attributes[attributes_count];
}
kur:
u1 = nepasirašytas vieno baito kiekis
u2 = nepasirašytas dviejų baitų kiekis
u4 = nepasirašytas keturių baitų kiekis
Details of the .class file structure as well explained in the Oracle class file format and can be referred by developers for reference. A summary of these fields are as follow.
magicâ stebuklingas elementas pateikia stebuklingÄ numerį, identifikuojantį klasÄs failo formatÄ ; jo reikÅ¡mÄ yra 0xCAFEBABE.minor_version,major_versionâ minor_version ir major_version elementų reikÅ¡mÄs yra Å¡ios klasÄs failo mažosios ir pagrindinÄs versijos numeriai.âconstant_pool_countâ â elemento âconstant_pool_countâ vertÄ yra lygi įrašų skaiÄiui lentelÄje âconstant_pool_countâ plius vienas. Constant_pool indeksas laikomas galiojanÄiu, jei jis yra didesnis nei nulis ir mažesnis už konstantos_pulo_skaiÄius, iÅ¡skyrus ilgo ir dvigubo tipo konstantas.
constant_pool[]â Constant_pool yra struktÅ«rų lentelÄ (§4.4), vaizduojanti įvairias eiluÄių konstantas, klasių ir sÄ sajų pavadinimus, laukų pavadinimus ir kitas konstantas, kurios nurodytos ClassFile struktÅ«roje ir jos postruktÅ«rose. Kiekvieno nuolatinio_puldinimo lentelÄs įraÅ¡o formatas nurodomas pirmuoju “žymos” baitu.access_flagsâ elemento access_flags reikÅ¡mÄ yra vÄliavÄlių, naudojamų Å¡ios klasÄs arba sÄ sajos prieigos leidimams ir ypatybÄms žymÄti, kaukÄ.âthis_classâ â elemento this_class vertÄ turi bÅ«ti galiojantis lentelÄs âconstant_poolâ indeksas.
super_klasÄâ klasÄje super_class elemento vertÄ turi bÅ«ti lygi nuliui arba turi bÅ«ti galiojantis lentelÄs konstantos_puldas indeksas.interfaces_countâ elemento interfaces_count reikÅ¡mÄ nurodo Å¡ios klasÄs arba sÄ sajos tipo tiesioginių super sÄ sajų skaiÄių.interfaces[]â kiekviena sÄ sajų masyvo reikÅ¡mÄ turi bÅ«ti galiojantis lentelÄs konstantos_puldas indeksas.fields_countâ elemento fields_count reikÅ¡mÄ nurodo lauko_informacijos struktÅ«rų skaiÄių laukų lentelÄje.fields[]- Each value in the fields table must be a field_info structure giving a complete description of a field in this class or interface.methods_countâ elemento Methods_count vertÄ nurodo metodų_informacijos struktÅ«rų skaiÄių metodų lentelÄje.methods[]- Each value in the methods table must be a method_info structure giving a complete description of a method in this class or interface. If neither of the ACC_NATIVE and ACC_ABSTRACT flags are set in the access_flags item of a method_info structure, the Java Virtual Machine instructions implementing the method are also supplied.attributes_countâ elemento attributes_count vertÄ nurodo atributų skaiÄių (§4.7) Å¡ios klasÄs atributų lentelÄje.attributes[]â kiekviena atributų lentelÄs reikÅ¡mÄ turi bÅ«ti atributo_info struktÅ«ra.
Nuorodos
See Also
- BIB failas - BibTeX Bibliografija - Kas yra .bib failas ir kaip jį atidaryti?
- FS failas â vaizdinis F# Å¡altinio failas â kas yra .fs failas ir kaip jį atidaryti?
- GED failas - GEDCOM Genealogy duomenų failas - Kas yra .ged failas ir kaip jį atidaryti?
- INO failas - Arduino Sketch - Kas yra .ino failas ir kaip jį atidaryti?
- MAX failas â 3ds Max scenos failas â kas yra .max failas ir kaip jį atidaryti?