java - jvm中操作数栈的高位地址在上面还是下面
高洛峰
高洛峰 2017-04-18 10:50:18
0
2
721
  • 这是我在一篇文章中看到的图片。

  • 我百度查了下,内存中的栈,高位地址在上,每次压栈(int这类),都会将地址减去1个字节,然后将值放入栈。

  • 但是这张图,在对操作数栈做压栈操作的时候,却从底下往上放了。不知道是我理解错了,还是作者的一个失误。

  • 谢谢指点

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
迷茫

Saya melihat gambar lain dalam artikel ini, dan gambar yang melibatkan 操作数栈 semuanya dari bawah ke atas

大家讲道理

Pertama sekali, jika int a dan int b disimpan secara berterusan dalam tindanan, maka alamat memori b mestilah 4 bait lebih besar daripada alamat a, bukan 1 bait!

Bagi mod besar-endian atau mod kecil-endian, mari kita mulakan dengan perduaan Unit storan minimum data dalam tindanan ialah bait, dan storan dalam bait ditetapkan dalam mod kecil-endian!

Data heksadesimal yang sama 0x3F00 disimpan dalam tertib 00 3F dalam mod endian kecil, dan dalam mod endian besar susunan storan ialah 3F 00. Secara terang-terangan, ini bermakna sama ada bait tertib rendah disimpan dahulu atau bait tertib tinggi disimpan dahulu.

Mod storan Java berkaitan dengan CPU komputer, tetapi tidak kira big-endian atau little-endian, mod storan dan analisis adalah bertentangan, yang bermaksud bahawa int yang sama akan mempunyai hasil pengiraan yang sama tanpa mengira besar- penyimpanan endian atau little-endian daripada.

Sila betulkan saya jika terdapat sebarang kesilapan atau ketinggalan dalam jawapan anda

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan