源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java中对象与C++中对象的放置安排的对比

  • 时间:2021-02-14 20:38 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java中对象与C++中对象的放置安排的对比
[b]Java中对象与C++中对象的放置安排的对比[/b] 概要: Java中,所有的对象都存放在堆(Heap,一种通用的内存池)中;而对象的引用是存放在堆栈(Stack)中的。 我们可以通过String直接声明的字符串与new String声明出来的字符串使用equals()和"=="进行的比较,从而理解对象和引用的关系及它们的存储位置。 堆栈是一种快速有效的分配存储方法,仅次于寄存器。创建程序时,Java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。 堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多长时间。所以,堆比堆栈更加灵活。 Java中的堆栈并不能简单理解为数据结构中的栈,虽然它们的英文都是Stack。Java中的堆栈是位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。 具体的Java的内存分配请详见《Thinking in Java》P22页。 C++中:只要使用了new和malloc关键字声明的对象,都是存放在堆中的,而malloc关键字也是对堆内存进行操作的:
A a(1);//栈中分配 
A b = A(1);//栈中分配 
A *c = new A(1);//堆中分配内存空间,将在堆中所创建的对象存储地址赋值给c指针 
A *d = (A*)malloc(sizeof(A));//堆中分配内存空间 
delete c;
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部