Rumah > Java > javaTutorial > teks badan

Apakah kaedah susun atur memori penyimpanan objek Java

王林
Lepaskan: 2023-05-10 18:34:06
ke hadapan
1048 orang telah melayarinya

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
langsung Penunjuk

  • 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
  • (
peruntukkan ruang memori untuk semua pembolehubah statik dalam kelas dan tetapkan nilai awal

)
    ,
  • 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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
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!