除了内存池外还有什么样其他技术能高效的为对象分配内存?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星
- 暂无评论信息
