相关疑难解决方法(0)

如何防止对象被垃圾收集?

如何防止对象被垃圾收集?

是否有最终确定或幻像参考或任何其他方法的方法?

我在接受采访时被问到这个问题.面试官建议finalize()可以使用.

java garbage-collection

32
推荐指数
3
解决办法
3万
查看次数

在 Java 中使用直接内存的目的是什么?

从 java 1.4 开始引入直接内存。新的 I/O (NIO) 类引入了一种基于通道和缓冲区执行 I/O 的新方法。NIO 添加了对直接 ByteBuffers 的支持,它可以直接传递到本机内存而不是 Java 堆。在某些情况下使它们显着更快,因为它们可以避免在 Java 堆和本机堆之间复制数据。

我一直不明白我们为什么要使用直接内存。有人可以帮忙举个例子吗?

java jvm

5
推荐指数
2
解决办法
7086
查看次数

我们是否必须手动释放分配的 ByteBuffer?

我正在写一些使用ByteBuffers 的东西。在API的文档中它说

没有办法显式地释放缓冲区(没有 JVM 特定的反射)。缓冲区对象会受到 GC 的影响,在缓冲区对象变得不可访问后,通常需要两个 GC 周期才能释放堆外内存。

然而,在SO 帖子接受的答案中,我读到

BigMemory 通过直接 ByteBuffer 使用 JVM 进程的内存地址空间,与其他本机 Java 对象不同,BigMemory不受 GC 的影响

现在我该怎么办,我应该释放创建的缓冲区吗?或者我误解了文档或答案中的某些内容?

java nio lwjgl

5
推荐指数
1
解决办法
4476
查看次数

java - 我们可以自己做内存管理吗?

是否可以自己执行内存管理.例如,我们在堆空间之外分配一块内存,这样它就不受GC的影响.我们自己负责从这块内存中分配/释放对象.

有些人指出了像Jmalloc/EHcache这样的框架.实际上我更想了解他们实际上是如何做到的.

我可以使用一些直接方法甚至是一些间接方法(例如,首先序列化java对象).

java garbage-collection jvm memory-management

4
推荐指数
1
解决办法
2099
查看次数

标签 统计

java ×4

garbage-collection ×2

jvm ×2

lwjgl ×1

memory-management ×1

nio ×1