jdk8 - Java反射代码 求解答,谢谢~
天蓬老师
天蓬老师 2017-04-18 09:26:55
0
9
613
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(9)
小葫芦

Apabila kita menulis kod java, fail sumber dinamakan dengan java sebagai akhiran Selepas fail java disusun, ia dinamakan dengan akhiran .class
Apabila mesin maya java merekodkan fail kelas, fail ini mesti berada dalam mesin maya dengan akhiran .class Struktur data tertentu wujud untuk mewakili pelbagai struktur dan data kelas yang sepadan Kemudian bentuk struktur ini ialah objek Kelas, yang merupakan penerangan bagi Kelas
dan Objek ialah hasil instantiasi objek Kelas Hanya akan ada satu salinan objek Kelas dalam JVM (dimuatkan oleh ClassLoader yang sama dan diletakkan di kawasan memori tetap JVM, dan GC tidak akan mengurus. ia), tetapi boleh terdapat berbilang objek contoh yang berbeza

Kaedah kelas mesti bergantung pada kejadian tertentu sebelum ia boleh dipanggil (kecuali kaedah statik), kerana ia bergantung pada data dan status kejadian tertentu~~~

阿神

Objek kelas Objek kelas dan kaedah Kaedah juga Objek dan mempunyai sifat dan kaedahnya sendiri.
Hanya apabila kelas dijadikan sebagai objek, kaedah contoh objek boleh dipanggil objek Kelas ialah tika kelas.

黄舟
  1. Objek Kelas bukanlah kelas itu sendiri, ia boleh dianggap sebagai antara muka yang digunakan untuk mengakses kelas sebenar.

  2. Memanfaatkan kaedah contoh memerlukan contoh kelas itu Apabila menggunakan kaedah statik, anda boleh memasukkan nol.

阿神

1. Saya tidak dapat menerangkannya dengan jelas
2 Kaedah ini adalah kaedah ahli Ia tidak boleh dipanggil jika ia adalah kaedah statik, ia tidak diperlukan

左手右手慢动作

Class ialah objek kelas, yang tentunya juga mewarisi daripada Object. Objek kelas ini agak berbeza daripada objek contoh tertentu Secara amnya, kelas hanya mempunyai satu objek kelas, yang boleh kita perolehi melalui Just.class (ini adalah salah satu kaedah, terdapat hampir tiga kaedah) . Objek berbilang contoh boleh dibuat menggunakan new atau newInstance.
Adalah disyorkan bahawa subjek membaca pengetahuan pengenalan refleksi, dan kemudian memahami konsep objek kelas dengan sendiri, yang merupakan asas refleksi.

刘奇

Kelas ialah abstraksi objek, dan objek (Objek) ialah abstraksi perkara objektif

阿神

Pertama sekali, Kelas digunakan untuk mengabstrak maklumat kelas Java adalah berorientasikan objek Contohnya, kelas orang, Orang, boleh mengabstrak maklumat seperti nama, jantina, umur, dll.; kelas, abstraksi kelas Java Ia menjadi kelas Kelas, yang mengabstraksi nama pakej, nama kelas, tatasusunan atribut, tatasusunan kaedah dan maklumat lain.
Ini memudahkan untuk memahami refleksi, Kelas<?> c = Just.class; di sini adalah objek Kelas ini mengandungi kelas Just, tetapi jika anda ingin mendapatkan contoh kelas Just , cuma Anda juga perlu memanggil kaedah c.newInstance().

Peter_Zhu

Anda mempunyai 2 soalan di sini:
Yang pertama ialah tentang hubungan antara kejadian dan kelas. Ini adalah seperti hubungan antara acuan dengan produk Contohnya, kita menggunakan acuan kek untuk membuat kek Menggunakan acuan adalah seperti satu kek dihasilkan dengan menekannya dengan acuan sama. Ini adalah Produk; Konsep refleksi adalah lebih kompleks Ia menerangkan bahawa acuan itu sendiri mempunyai atribut, seperti seberapa besar dan dalam acuan itu, dan kelas itu sendiri adalah sama Apakah kaedah dan sifat yang ada pada kelas ini? Jika anda mengetahui perkara ini, anda boleh membuat seketika objek secara dinamik. Selepas saya tahu apa yang dilakukan oleh sifat-sifat acuan ini, saya juga boleh menghasilkan kek secara dinamik dan memanggil kaedah kek ini
Soalan kedua: Kerana menggunakan refleksi juga memerlukan instantiasi objek, walaupun baru tidak digunakan, ia masih memerlukan; untuk dijadikan instantiated Ia mesti instantiated, jika tidak, penunjuk nol akan dilaporkan.

迷茫

Saya melihat bahawa masalah telah diselesaikan, tetapi saya masih mahu menambah sesuatu dari tahap struktur memori.

Mari kita lihat struktur ingatan timbunan contoh:

Iaitu, setiap contoh objek terdiri daripada 4 bahagian dalam ingatan timbunan Fokus pada perkataan tanda (kata tanda) dan penunjuk contoh Class termasuk sama ada terdapat kunci, bendera GC, GC Pemuda maklumat masa, dsb.

Contoh

Class mewakili kelas yang telah dimuatkan ke dalam jvm oleh Classloader Ia menyimpan maklumat penerangan, nama kelas, nama medan dan maklumat kaedah kelas ini.

Jadi masalah poster adalah jelas A Class contoh hanya mewakili maklumat perihalan kelas itu, dan setiap kejadian akan mengandungi rujukan penunjuk kepada contoh Class.

Biasanya memanggil Class.newInstance() akan melakukan 3 perkara:

1. Buka ruang ingatan timbunan
2. Panggil pembina tanpa hujah bagi kelas yang sepadan
3. Mohon alamat tindanan dan halakan alamat rujukan ke ruang ingatan timbunan ini

Selain itu, instantiasi Class dilakukan dengan kaedah classloader define().

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!