84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
这是我在一篇文章中看到的图片。
我百度查了下,内存中的栈,高位地址在上,每次压栈(int这类),都会将地址减去1个字节,然后将值放入栈。
高位地址在上
但是这张图,在对操作数栈做压栈操作的时候,却从底下往上放了。不知道是我理解错了,还是作者的一个失误。
操作数栈
却从底下往上放了
谢谢指点
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
我看了该文章的其他图片,涉及到操作数栈的图片,都是从下往上的
首先,在栈里面连续存入int a和int b,那么b的内存地址一定比a的地址大4个字节,而不是1个字节!
至于大端模式还是小端模式,先从二进制说起,数据在栈内最小存储单位为字节,字节内的存储是固定的小端模式!
同样一个十六进制数据0x3F00 在小端模式下存储顺序为00 3F,而在大端模式下存储顺序为3F 00。说白了就是先存储低位的字节还是先存储高位的字节。
而java的存储模式与计算机的cpu有关,但无论大端还是小端,存储模式相反解析也是相反的,也就是说同样一个int无论大端存储还是小端存储,计算的结果是一致的。
回答如有错误纰漏,请指正
我看了该文章的其他图片,涉及到
操作数栈
的图片,都是从下往上的首先,在栈里面连续存入int a和int b,那么b的内存地址一定比a的地址大4个字节,而不是1个字节!
至于大端模式还是小端模式,先从二进制说起,数据在栈内最小存储单位为字节,字节内的存储是固定的小端模式!
同样一个十六进制数据0x3F00 在小端模式下存储顺序为00 3F,而在大端模式下存储顺序为3F 00。说白了就是先存储低位的字节还是先存储高位的字节。
而java的存储模式与计算机的cpu有关,但无论大端还是小端,存储模式相反解析也是相反的,也就是说同样一个int无论大端存储还是小端存储,计算的结果是一致的。
回答如有错误纰漏,请指正