除了内存池外还有什么样其他技术能高效的为对象分配内存?Java中如何查看一个引用类型的内存地址

时间:2018-02-09 22:45:01   浏览:次   点击:次   作者:   来源:   立即下载

如果分配/释放有特定的模式(规律),才可作专门的优化。

例如,要①次性建立①个DOM tree,每个节点可能是不同类的实例,建立后只供查询而不会被修改。那么,可以实现①种特殊分配器,它分配①个chunk,然后用chunk来满足分配请求,若chunk满了再分配另①个chunk,这些chunk用侵入式链表连接起来。最后只需把多个chunk释放,而不需逐①释放节点对象。 RapidJSON 预设是用这种特殊分配器存储parsing的结果。

如果分配/释放是有先入后出或先入先出等模式,就可分别使用circular queue及stack来做分配器。

我的译作中(§⑤.② · §①④.④)也有谈及游戏会用到的①些特殊内存分配手法,但都需要配合某些模式的。

--

更新:还有①本《内存受限系统之软件开发 (豆瓣)》,可以参考里面的①些模式。

你这个问题不是查看内存地址的问题,你说的那种情况应该是调用了BigInteger.valueOf(long);生成的BigInteger对象,下面是这个方法的源代码:

public static BigInteger valueOf(long val) {// If -MAX_CONSTANT < val < MAX_CONSTANT, return stashed constantif (val == ⓪) return ZERO;if (val > ⓪ else if (val < ⓪ return new BigInteger(val); }可以看到,当传入的参数为⓪时,直接返回的就是BigInteger.ZERO,它们能不相等吗?

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息