首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java和C++在对象创建方面的主要区别是什么?

Java和C++在对象创建方面的主要区别是什么?
EN

Stack Overflow用户
提问于 2010-09-29 17:05:17
回答 2查看 11.4K关注 0票数 21

我正在准备Java语言的考试,上一次考试中的一个问题是:“Java和C++在对象创建方面的主要区别是什么?”

我想我知道对象创建的基础知识,比如构造函数是如何调用的,初始化块在Java中做什么,当一个类的构造函数调用另一个类的方法时会发生什么等等,但我找不到任何明显的东西。答案应该是一两句话,所以我认为用Java描述整个对象创建过程并不是他们想要的。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2010-09-29 17:24:35

除了堆/栈问题之外,我想说的是: C++构造函数有初始化列表,而Java使用赋值。详情请参见http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.6

票数 8
EN

Stack Overflow用户

发布于 2010-09-29 20:08:21

假设c++在进行新的调用时使用了alloc(),那么这可能就是他们想要的。(我不知道C++,所以在这里我可能大错特错)

Java的内存模型会在需要的时候分配一块内存,对于每个新的内存,它都会使用这个预先分配的区域。这意味着java中的new只是设置指向内存段的指针并移动空闲指针,而C++中的new (假定它在后台使用malloc )将导致系统调用。

这使得在Java中创建对象比使用malloc的语言更便宜;至少在没有初始化的情况下是这样。

简而言之,在Java中创建对象很便宜,除非您创建了大量对象,否则不用担心。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3820178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档