现在的位置: 首页 > 综合 > 正文

对虚拟机中堆和栈错误理解的澄清(java/c#)

2013年10月03日 ⁄ 综合 ⁄ 共 290字 ⁄ 字号 评论关闭

   

       很多人都知道java的虚拟机中有堆和栈(还有method area 等),也知道对象实例存在于堆中,基本数据(primitive type)类型存在于栈中,且慢,很多人都被误导了。其实在虚拟机中存储数据的是堆,说栈用来存储数据是不妥当的。

        假如说基本数据类型存储于栈中,那么,对象中的基本数据类型又怎么存储?也就是说,即便是primitive value在没有被用到的情况下也存储与堆中(包含在对象里,因为在java或者c#中,一切都是对象,甚至primitive value也是对象) 事实上,栈只用于虚拟机的解释运行,用于做运算的地方,类似于cpu的寄存器。

抱歉!评论已关闭.