Jadual Kandungan
Susun atur memori storan objek Java
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.
Ahli statik subkelas dan blok permulaan statik dilaksanakan mengikut tertib yang dipaparkan dalam kod
Rumah Java javaTutorial Apakah kaedah susun atur memori penyimpanan objek Java

Apakah kaedah susun atur memori penyimpanan objek Java

May 10, 2023 pm 06:34 PM
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
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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

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

Penjana Nombor Rawak di Jawa Penjana Nombor Rawak di Jawa Aug 30, 2024 pm 04:27 PM

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

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

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

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

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

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

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

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

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

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

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.

Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

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

See all articles