Java中的对象与C++中的对象有什么区别

Java中的对象与C++中的对象有什么区别?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联总部坐落于成都市区,致力网站建设服务有网站设计、网站建设、网络营销策划、网页设计、网站维护、公众号搭建、微信平台小程序开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!

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

概要:

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;

看完上述内容,你们掌握Java中的对象与C++中的对象有什么区别的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


名称栏目:Java中的对象与C++中的对象有什么区别
本文网址:http://scyanting.com/article/jhhhde.html