黑马程序员技术交流社区

标题: java 中求和求差求模求余 在内存中到底是怎么实现运算的 ... [打印本页]

作者: HM马明宇    时间: 2013-3-14 13:36
标题: java 中求和求差求模求余 在内存中到底是怎么实现运算的 ...
本帖最后由 光明宇宙 于 2013-3-16 10:04 编辑

api里面有没有方法,怎么去看这些个方法的源码呢?如果明白其中的原理,最好能图形化表示出来,不胜感激~~~

作者: fighting    时间: 2013-3-15 08:58
基本的运算符应该是由虚拟机实现的吧,也就是用c或汇编语言写的,
你可以去研究一下汇编的代码

运算操作在内存中一般是由栈来实现的,用两个栈,一个存放数据,一个存放运算符。

在运算时,数据与运算符依次进栈,当下一个运算符在进栈时,首先要与运算符栈中栈顶的运算符做比较,
如果栈顶的运算符优先级较高,则这个运算符要先出栈并且与数据栈中出栈的两个数据做运算,
然后将运算结果压入数据栈中,这时下一个运算符才进栈,按这样的方式进行进栈出栈操作,
直到两个栈为空返回结果。

附个图片,简单画了画,竟然没有权限加图片,只好加到附件里了,有兴趣的下载下来看吧{:soso_e113:}

无标题.png (19.14 KB, 下载次数: 23)

无标题.png

作者: HM马明宇    时间: 2013-3-15 12:29
fighting 发表于 2013-3-15 08:58
基本的运算符应该是由虚拟机实现的吧,也就是用c或汇编语言写的,
你可以去研究一下汇编的代码

多谢!!!
作者: HM马明宇    时间: 2013-3-15 12:30
再等等,看还有木有更详细点的解释~~
作者: HM刘鹏    时间: 2013-3-15 16:30
这个你要看计算机组成原理了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2