虽然我从来没有见过这样的言论,它是否存在于Java世界呢?在java中是否有像malloc/free一样的东西?
6
A
回答
13
Java的版本malloc
是new
- 它创建一个指定类型的新对象。
在Java中,内存是为您管理的,因此您无法明确地使用delete
或free
对象。
0
new
而不是malloc
垃圾回收器,而不是免费的。
4
Java有一个垃圾收集器。这就是为什么你永远也看不到你的代码语句(这是很好的,如果你问我)
在计算机科学中,垃圾收集 (GC)是自动的 内存管理的一种形式。这是一种特殊的资源管理案例,其中 被管理的有限资源是 内存。垃圾收集器或仅收集器尝试收回 垃圾,或由 程序不再使用的对象 占用的内存。垃圾收集是约翰·麦卡锡发明的约为1959年 发明的 来解决Lisp中的问题。
3
没有直接对应Java中存在:
Çmalloc
创建一个类型化的堆节点,并返回一个指向它允许,但是你想你访问内存。
Java不具有无类型对象的概念,也不允许直接访问内存。在Java中最接近malloc
的将是new byte[size]
,但是它会返回一个强类型对象,您只能将其用作字节数组。
C free
释放一个堆节点。
Java不允许您显式释放对象。 Java中的对象释放完全掌握在垃圾回收器的手中。在某些情况下,您可以影响GC的行为;例如通过将null
分配给参考变量并调用System.gc()
。但是,这不会强制对象被释放......并且是一种非常昂贵的方式。
3
如果你没有好(tm),我想你可以通过JNI接口访问原始内存。这是您可以从Java程序调用C程序的地方。当然,你必须在你的程序有权这样做的环境中运行(浏览器通常不允许这种情况,除非它是自杀的),但你可以通过C指针访问对象。
我有点奇怪原来的问题来自何处。很久以前,我完全怀疑C型内存管理和C型指针是不需要的,但在这一点上我是真正的信徒。
相关问题
- 1. Android中是否有像Asp.net中的appSettings一样的东西?
- 2. 像CHESS这样的东西是否存在于Java中?
- 3. 像java一样,C++中是否有类似timer和timertask的东西?
- 4. Rails是否有像Django Rest Framework一样的东西?
- 5. 是否有像.dll或.so这样的东西,但跨平台?
- 6. 当用UINavigationController返回时,是否有像prepareForSegue这样的东西?
- 7. 有没有像C#中的Bundle一样的东西?
- 8. 是否有像Project Sprouts这样的东西,但在Python中实现?
- 9. 在C#中,C++是否有像List <string>这样的东西?
- 10. 有没有像Codecademy for Java的东西
- 11. 在Java中是否有类似于WebClient.DownloadString的东西?
- 12. 我如何检查是否在Python中输入了什么东西是一样的CSV文件的东西
- 13. Grails在Rails中有没有像acts_as_tree这样的东西?
- 14. Erlang有没有像宝石一样的东西?
- 15. .NET BCL中是否有与java的File.deleteOnExit()等价的东西?
- 16. 有没有像''的东西?
- 17. 有没有像redis中的get_next那样的东西?
- 18. 有没有像CURLOPT_CONNECTIONTIMEOUT这样的东西存在?
- 19. 是否有可能在PHP中像Java的socksProxyHost一样?
- 20. .NET中有MessageQueueWatcher这样的东西吗?
- 21. Vuex中有没有和Redux中的mapDispatchToProps一样的东西?
- 22. emacs是否有像vi的“set number”之类的东西?
- 23. 东西像FindBugs这样的.NET/C#
- 24. 东西在Java中是(类似)参数
- 25. 在Opengl中,近平面和镜像平面是一样的东西吗?
- 26. 有没有像.NET中的东西的Java描述符?
- 27. 像Flash/ActionScript中的饼干一样的东西
- 28. Java是否有类似JRoulette组件的东西?
- 29. 有没有Perabyte这样的东西?
- 30. Java中有没有像Objective-C类别的东西?
所以我不能直接访问内存空间? – java 2010-12-10 01:50:53
不,您无法通过任何理智的方式获得对Java对象的底层指针/内存地址的访问。 C#允许您使用`unsafe`关键字执行此操作: http://msdn.microsoft.com/en-us/library/chfa2zb8(v=VS.100)。aspx 请注意,这是非常非常少的必要。 – ClosureCowboy 2010-12-10 01:52:09