我已经使用c++一段时间了,现在正在学习java,
在 java 中声明对象让我感到困惑,
我们用java写
myclass myobject = new myclass();
myobject.mymethod();
和这段c++的代码一样吗?
myclass *myobject = new myclass();
myobject->mymethod();
也就是说,内存是在堆
上分配的吗?如果它在堆上,为什么我们从不释放内存。我相信 new 关键字是相同的。
如果是这样,我们如何在堆栈上分配内存?
最佳答案
Is it same as this code in c++ ?
是的。是一样的。
i.e is the memory getting allocated on heap?
是的。
If it is on heap why we never free the memory.
当对象不再可达时,允许其进入垃圾收集器。即当没有对该对象的有效引用或(取消引用)
If so, how do we allocate memory on stack?
当特定线程开始执行时,与该线程相关的变量将被放置在堆栈中,并在该线程的作业完成后立即被删除。每个线程都有自己的堆栈。
关于java - 在 C++ 和 Java 中声明对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32807356/