【发布时间】:2017-09-11 23:14:38
【问题描述】:
当我在 C++ 中创建一个带有指针的新对象时,我需要在完成或将此指针移动到另一个对象时删除它以避免内存泄漏。 Java 中的new Some_Object 是这样工作的吗?
Some_Object o1 = new Some_Object("oj1");
o1 = new Some_Object("oj2"); // do this make memory leak in Java?
【问题讨论】:
-
在 c++ 中,如果将使用 new 创建的对象分配给指针,然后将该指针指向其他地方,则除非您在其他地方对创建的对象有另一个引用,否则您已经泄漏了内存。
-
C++ 不是 Java。
-
不是它不会泄漏内存。 java中的垃圾收集器非常可靠。您可以拥有的是资源泄漏(套接字、流保持打开状态)
-
有一些方法,尽管在 Java 中内存可能会泄漏。请参阅有关该主题的广泛 SO 线程:stackoverflow.com/questions/6470651/…
-
在 C++ 中,您不必使用
new来创建对象。
标签: java c++ memory-leaks