Refleksi, seperti namanya, ialah kefungsian API(Antaramuka pengaturcaraan aplikasi) dalam JAVA yang melaluinya contoh masa jalan kelas boleh diperiksa sepenuhnya. Ia adalah sebahagian daripada pakej Java.lang.reflect. Pakej ini perlu diimport pada permulaan program, dan kemudian fungsi digunakan untuk memahami fungsi "refleksi." Mana-mana tingkah laku kelas boleh dikaji; metadata boleh diekstrak atau diubah suai menggunakan API refleksi dalam masa jalan.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks
Sintaks fungsi biasa di bawah API refleksi untuk mengekstrak maklumat kelas disediakan di bawah:
- public String getName( parameter ): Fungsi ini mengembalikan nama kelas.
- public boolean isInterface( parameter ): Fungsi ini menyemak sama ada kelas ialah antara muka atau tidak dan mengembalikan nilai boolean (true atau false).
- public boolean isArray( parameter ): Fungsi ini menyemak sama ada pembolehubah ialah tatasusunan atau bukan dan mengembalikan nilai boolean (true atau false).
- public Constructor[] getDeclaredConstructors( parameter ) membuang SecurityException: Fungsi ini menyemak pembina dalam kelas dan mengembalikan bilangan pembina yang digunakan dalam kelas tertentu. Selain itu, ia mempunyai pengecualian keselamatan dan tangkapan yang dikaitkan dengan menjadikan program ini berfungsi tanpa gangguan.
- Kaedah awam[] getDeclaredMethods( parameter ) membuang SecurityException: Fungsi ini menyemak kaedah dalam kelas dan mengembalikan bilangan kaedah yang digunakan dalam kelas tertentu. Selain itu, ia mempunyai pengecualian keselamatan dan tangkapan yang dikaitkan untuk menjadikan program ini berfungsi tanpa gangguan.
- Kelas awam getSuperclass( parameter ): Fungsi ini mengembalikan superclass kelas asas.
- boolean awam adalah primitif( parameter ): Fungsi ini menyemak sama ada parameter yang diberikan adalah primitif atau tidak dan mengembalikan nilai boolean.
Bagaimana Refleksi berfungsi dalam JAVA?
Kelas refleksi menggunakan kaedah berbeza yang ditakrifkan dalam pakej Java.lang.reflect untuk mengekstrak maklumat kelas. Maklumat tentang kelas boleh diekstrak menggunakan kaedah getClass(), Pembina menggunakan kaedah getConstructors() dan kaedah menggunakan kaedah getMethods(). Kaedah ini ditakrifkan dalam API refleksi tetapi mengembalikan maklumat kelas, termasuk kaedah, pembina dan banyak lagi. Reflection API digunakan dalam program JAVA, IDE (Persekitaran pembangunan bersepadu) seperti eclipse, Netbeans. Ini boleh difahami dengan baik dengan bantuan contoh yang disediakan dalam bahagian di bawah.
Contoh Refleksi dalam JAVA
Contoh yang berbeza dinyatakan di bawah:
Contoh #1
Kod:
//package test; import java.lang.Class; public class test{ public static void main(String args[]){ Class<boolean> c1 = boolean.class; System.out.println("Here, the class name is: "+c1.getName()); Class<test> c2 = test.class; System.out.println("This is another instance of class is used to derive class name : "+c2.getName()); } }</test></boolean>
Output:
Penjelasan: Sila semak contoh yang disediakan di atas. Ini mempunyai pakej yang mengandungi semua kelas bernama "ujian." Pakej ujian mempunyai kelas "ujian diisytiharkan." Kelas ini juga mengandungi kaedah utama dari mana pelaksanaan program akan bermula. Kelas “Kelas
Dalam baris seterusnya, daripada menggunakan jenis data primitif, "kelas" jenis data yang ditentukan pengguna bernama "ujian" diambil kira untuk mengekstrak data. “Kelas
Contoh #2
Kod:
//package test; import java.lang.Class; class Simple{} public class test{ public static void main(String args[]){ try{ Class> c=Class.<em>forName</em>("Simple"); System.<em>out</em>.println("The result is: "+c.isInterface()); }catch(Exception e){System.<em>out</em>.println(e);} } }
Output:
Penjelasan: Dalam contoh di atas, satu pakej dicipta bernama" ujian," seperti yang dibuat dalam contoh nombor 1 sebelumnya. Pakej ini mengandungi nama kelas "Mudah", yang bukan kelas utama . Kelas utama di sini ialah kelas "ujian" yang mengandungi kaedah utama dari mana pelaksanaan program akan bermula. “Kelas >” ialah pengecam kelas pantulan yang diwujudkan melalui objek bernama "c" di sini. Kemudian objek ini digunakan untuk mengeluarkan penunjuk keputusan (Benar atau salah) bagi fungsi yang dinamakan "isInaterface." Fungsi ini menarik dalam kelas sebagai parameter; dalam kes ini, kelas yang ditarik masuk sebagai parameter ialah kelas "Mudah". Kelas ini bukan antara muka, jadi "palsu" dikembalikan sebagai hasil dalam skrin output. Untuk menggunakan fungsi ini, objek kelas “c” telah digunakan.
Kelebihan
Beberapa kelebihan menggunakan refleksi dalam JAVA disenaraikan di bawah:
- Ini adalah salah satu cara terbaik untuk mengekstrak maklumat untuk mana-mana kelas. Maklumat ini boleh terdiri daripada maklumat daripada pembina kepada kelas dan kaedah.
- Salah satu kelebihan terbesar fungsi ini ialah kami juga boleh mengekstrak maklumat tentang kaedah dan kelas peribadi. Jadi apa-apa sahaja, jika disembunyikan dalam program dengan niat buruk, boleh diekstrak menggunakan fungsi ini.
- Fungsi ini memberikan banyak fleksibiliti kepada penyahpepijat kerana mereka boleh nyahpepijat kelas dengan mudah dan bukannya pergi ke setiap kelas secara berasingan.
- Ini juga menambah sebagai ciri kebolehlanjutan di mana seseorang boleh menambah kelas tersuai luaran dengan menggunakan contoh.
- Ini memberikan manifestasi kuasa sebenar bahasa OOP dengan bantuan contoh.
- Ini digunakan dalam pemuatan dinamik dan pemuatan semula kelas semasa program dijalankan.
Kesimpulan
Refleksi JAVA memungkinkan untuk mengintrospeksi kelas, antara muka, kaedah dan banyak lagi tanpa mengetahui nama kelas sama sekali. Ini semua dilakukan semasa masa penyusunan. Ini dianggap sebagai salah satu sifat JAVA yang paling berkuasa kerana ini boleh digunakan untuk mencipta contoh kelas, dan ahli persendirian kelas boleh diekstrak menggunakan ini. Pembangun boleh menggunakan ini semasa masa jalan dan untuk pemetaan objek pangkalan data juga.
Atas ialah kandungan terperinci Refleksi dalam JAVA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

JVMmanagesgarbagecollectionacrossplatformseffectivelybyusingagenerationalapproachandadaptingtoOSandhardwaredifferences.ItemploysvariouscollectorslikeSerial,Parallel,CMS,andG1,eachsuitedfordifferentscenarios.Performancecanbetunedwithflagslike-XX:NewRa

Kod Java boleh dijalankan pada sistem pengendalian yang berbeza tanpa pengubahsuaian, kerana falsafah "Write Once, Run, Everywhere" Java dilaksanakan oleh Java Virtual Machine (JVM). Oleh kerana perantara antara bytecode Java yang disusun dan sistem operasi, JVM menerjemahkan bytecode ke dalam arahan mesin tertentu untuk memastikan program itu dapat dijalankan secara bebas di mana -mana platform dengan JVM dipasang.

Penyusunan dan pelaksanaan program Java mencapai kemerdekaan platform melalui Bytecode dan JVM. 1) Tulis kod sumber Java dan menyusunnya ke dalam bytecode. 2) Gunakan JVM untuk melaksanakan bytecode pada mana -mana platform untuk memastikan kod berjalan di seluruh platform.

Prestasi Java berkait rapat dengan seni bina perkakasan, dan memahami hubungan ini dapat meningkatkan keupayaan pengaturcaraan dengan ketara. 1) JVM menukarkan bytecode Java ke dalam arahan mesin melalui kompilasi JIT, yang dipengaruhi oleh seni bina CPU. 2) Pengurusan memori dan koleksi sampah dipengaruhi oleh RAM dan kelajuan bas memori. 3) Ramalan cache dan cawangan mengoptimumkan pelaksanaan kod Java. 4) Pemprosesan pelbagai threading dan selari meningkatkan prestasi pada sistem multi-teras.

Menggunakan perpustakaan asli akan memusnahkan kemerdekaan platform Java, kerana perpustakaan ini perlu dikumpulkan secara berasingan untuk setiap sistem operasi. 1) Perpustakaan asli berinteraksi dengan Java melalui JNI, menyediakan fungsi yang tidak dapat dilaksanakan secara langsung oleh Java. 2) Menggunakan perpustakaan asli meningkatkan kerumitan projek dan memerlukan menguruskan fail perpustakaan untuk platform yang berbeza. 3) Walaupun perpustakaan asli dapat meningkatkan prestasi, mereka harus digunakan dengan berhati-hati dan menjalankan ujian silang platform.

JVM Mengendalikan Perbezaan API Sistem Operasi melalui JavanativeInterface (JNI) dan Perpustakaan Standard Java: 1. JNI membenarkan kod Java untuk memanggil kod tempatan dan terus berinteraksi dengan API Sistem Operasi. 2. Perpustakaan Standard Java menyediakan API bersatu, yang dipetakan secara dalaman kepada API sistem operasi yang berbeza untuk memastikan kod tersebut berjalan di seluruh platform.

modularitydoesnotdirectlyaffectjava'splatformindected.java'splatformindectenceismaintybythejvm, butmodularityinfluencesapplicationstructureandManagement, indirectlyimpactingplatformindect.1) DeploymentandmentandmentweMbecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecom

BytecodeinjavaistheintermediaterepresentationThateNableSplatformindant.1) javacodeiscompiledintobytecodestoredin.classfiles.2)


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod
