java - 在 C++ 和 Java 中声明对象

标签 java c++ new-operator

我已经使用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/

相关文章:

java - 无法在 JPanel 上绘图

c++ - 为什么在 C++ 中拆分字符串比 Python 慢?

c++ - 为什么 (const char*) ptr 不被视为左值

c++ - 如何在可能使用 placement new 的同时创建数组

python - 为什么 Python 新式类中的 __new__ 不是类方法?

java - 使用 Jackson Exception 构建 RESTFul Web 服务

java - 将日期发送到 postgresql

java - 如何在elasticsearch中创建索引,以便每天上传数据时创建一个带有日期的新索引别名并允许我删除它们

c++ - Opencv mat截断所有双项

c++ - 运算符与函数行为