首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java中有像malloc/free这样的东西吗?

java中有像malloc/free这样的东西吗?
EN

Stack Overflow用户
提问于 2010-12-10 09:33:22
回答 5查看 27.8K关注 0票数 10

我从来没有见过这样的说法,但它在java世界中存在吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-12-10 09:36:55

malloc的Java版本是new --它创建一个指定类型的新对象。

在Java语言中,内存是为您管理的,因此您不能显式地deletefree对象。

票数 17
EN

Stack Overflow用户

发布于 2010-12-10 09:43:49

Java有一个垃圾收集器。这就是为什么你从来没有在你的代码中看到这样的语句(如果你问我,这很好)

在计算机科学中,垃圾收集(GC)是自动内存管理的一种形式。这是资源管理的一个特例,其中被管理的有限资源是内存。垃圾收集器,或只是收集器,试图回收垃圾,或程序不再使用的对象占用的内存。垃圾收集是由John McCarthy在1959年左右发明的,用来解决Lisp语言中的问题。

票数 5
EN

Stack Overflow用户

发布于 2010-12-10 10:05:37

Java中没有直接的等价物:

C malloc创建一个非类型化的堆节点,并返回一个指向该节点的指针,允许您随心所欲地访问内存。

Java没有无类型对象的概念,也不允许您直接访问内存。在Java语言中,最接近malloc的是new byte[size],但这将返回一个只能用作字节数组的强类型对象。

C free释放一个堆节点。

Java不允许您显式释放对象。Java中的对象释放完全掌握在垃圾收集器手中。在某些情况下,您可以影响GC的行为;例如,通过将null分配给引用变量并调用System.gc()。然而,这并不会强制对象被释放...这是一种非常昂贵的处理方式。

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

https://stackoverflow.com/questions/4404872

复制
相关文章

相似问题

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