Apakah kaedah susun atur memori penyimpanan objek Java
Susun atur memori storan objek Java
Seperti yang kita semua tahu, Java ialah bahasa berorientasikan objek, jadi apakah yang terkandung di dalam ingatan objek. Pertama sekali, Kebanyakan objek disimpan pada timbunan (kecuali untuk melarikan diri ).
Kemudian storan objek dalam timbunan dibahagikan terutamanya kepada tiga bahagian
Pengepala objek, data contoh objek, tambahan penjajaran (tatasusunan akan mempunyai satu lagi panjang Tatasusunan)
-
Pengepala objek:
tanda perkataan: Simpan Kod cincang dan kunci maklumat objek ( Naik taraf kunci) atau maklumat seperti umur penjanaan atau bendera GC
Penuding jenis: menyimpan penunjuk ke kelas di mana objek itu berada (fail kelas dalam metadata), lulus JVM Ini menentukan kelas mana objek ini dimiliki
-
Data contoh objek:
maklumat objek baharu, yang menyimpan maklumat data atribut kelas, termasuk maklumat atribut Kelas induk;
- JVM memerlukan pendudukan objek Ruang mestilah gandaan 8 untuk memudahkan peruntukan memori (diperuntukkan dalam bait sebagai unit minimum), jadi bahagian ini digunakan untuk mengisi ruang yang tidak mencukupi untuk membentuk nombor .
Akses kedudukan objek Java
Kaedah akses arus perdana terutamanya termasuk
menangani dan
Pemegang: Sebuah blok memori dibahagikan kepada timbunan Java sebagai kolam pemegang, dan objek disimpan dalam rujukan dalam tindanan Alamat pemegang dan pemegang mengandungi maklumat alamat khusus bagi data contoh objek dan data taip
-
penunjuk langsung:
timbunan java Susun atur memori objek mesti mempertimbangkan cara menghalang akses kepada maklumat yang berkaitan dengan jenis data Apa yang disimpan dalam rujukan adalah alamat objek secara langsung.
-
Akses penuding terus ke objek tidak memerlukan overhed akses tidak langsung tambahan, dan pemegangnya mudah Apabila alamat objek berubah (pengumpulan sampah akan mengalihkan alamat objek), anda sahaja perlu menukar rujukan penunjuk itu sendiri dalam pemegang Tidak perlu menukar.
Proses penciptaan objek Java
-
Apabila mesin maya menemui arahan baharu, ia mula-mula menyemak sama ada kelas yang ditentukan
dimuatkan dan disahkan , sediakan (
)
- ,
- parse, mulakan
. Selepas pemeriksaan kelas, mesin maya memperuntukkan memori untuk objek baharuBagaimana untuk memastikan keselamatan peruntukan memori timbunan di bawah keadaan serentak mesin maya menggunakan CAS untuk mengkonfigurasi pemulihan kegagalan Cuba pastikan atomicity
Tinggalkan peruntukan memori kepada utas, peruntukkan ruang semasa membuat utas dan biarkan tugas memperuntukkan memori kepada utas. Buka TLAB (Thread local Allocation Buffer) -
Selepas memperuntukkan memori, tetapkan pengepala objek, seperti contoh kelas, kod cincang, penuding maklumat metadata kelas (kawasan kaedah)
Laksanakan kaedah init (kaedah kernel), mulakan pembolehubah ahli, laksanakan blok kod instantiasi, panggil kaedah pembinaan kelas dan tetapkan alamat pertama objek dalam timbunan kepada pembolehubah rujukan .
Adakah benang peruntukan objek Java selamat?
CAS menambah percubaan semula kegagalan untuk memastikan integriti kemas kini.
Bahagikan peruntukan memori kepada ruang yang berbeza mengikut utas, iaitu setiap utas pra-peruntukkan blok kecil memori dalam timbunan Java, yang dipanggil penampan peruntukan benang tempatan TLAB . Utas yang manakah ingin memperuntukkan memori dalam TLAB yang sepadan, dan menyegerakkan selepas TLAB digunakan.
Tertib instantiasi kelas Java
-
Ahli statik kelas induk dan blok permulaan statik dilaksanakan mengikut susunan yang muncul dalam kod
Ahli statik subkelas dan blok permulaan statik dilaksanakan mengikut tertib yang dipaparkan dalam kod
Ahli contoh kelas induk dan blok permulaan contoh ialah. dilaksanakan mengikut susunan ia muncul dalam kod Laksanakan
pembina kelas induk
ahli contoh subkelas dan blok permulaan ins dalam susunan ia muncul. dalam kod. Laksanakan
kaedah pembinaan subkelas dalam urutan
Atas ialah kandungan terperinci Apakah kaedah susun atur memori penyimpanan objek Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Panduan untuk Penjana Nombor Rawak di Jawa. Di sini kita membincangkan Fungsi dalam Java dengan contoh dan dua Penjana berbeza dengan contoh lain.

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4
