Java JSP如何取得HashMap的大小 20

如何取得HashMap内对象的大小,即其内容所内存资源多少字节。知道的告诉一下,不胜感谢!KeepMoving_OK:这种方法统计的内存大小只有Java使用的内存吗?如果... 如何取得HashMap内对象的大小,即其内容所内存资源多少字节。知道的告诉一下,不胜感谢!
KeepMoving_OK :这种方法统计的内存大小只有Java使用的内存吗?如果不是,怎样保证统计结果的准确性??? 感觉此路不通。。有没有其他的方法?
曾经想过序列化,不过序列化首先要求继承Serializable,程序就改大了,希望能有个方法改动小一些,直接取对象大小,或者计算response大小也行。
展开
 我来答
KeepMoving_OK
2010-01-19 · TA获得超过167个赞
知道答主
回答量:89
采纳率:0%
帮助的人:0
展开全部
Java里面没有提供像C,C++那样的Sizeof()方法,所以不可以直接取得内存资源大小.

但是有提供Runtime.getRuntime ().totalMemory ()和Runtime.getRuntime ().freeMemory ()这样的方法

所以内存使用大小 = totalMemory () - freeMemory();

但是又不能直接传送Hashmap对象去计算.必须在创建Haspmap之前gc一次,然后得到大小,创建HaspMap之后再gc一次,得到内存大小,然后相减.

===================================
是的,这种方法统计的内存大小是Java使用的内存.但是Java垃圾回收机制,所以不能精确到KB.那就是我们在计算得时候必须GC得原因.

还有一个办法就是上面这么兄弟说得,用序列化.把HaspMap序列化(其实就是写入到一个临时文件).然后这个临时文件得大小,就是内存占用得大小.这个可以精确到KB,但是效率上,值得考究.
yuboalt
推荐于2018-04-23 · TA获得超过578个赞
知道小有建树答主
回答量:509
采纳率:0%
帮助的人:204万
展开全部
在jsp页面中 可以在<% %> 中间添加java代码.
则可以
<% Map map = new HashMap();
int size = map.size();

%> //如果map就是你要获取size的Map
在javascript代码中 可以通过
var size = '<%=size>'; // 获得size
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
java_function
2010-01-19 · 超过26用户采纳过TA的回答
知道答主
回答量:144
采纳率:0%
帮助的人:89.7万
展开全部
你是说map的大小还是map里面的对象的字节数?
如果是前者的话就直接size就出来了
后者的话,可以通过序列化来得到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞扬的青春先生
2010-01-20 · TA获得超过370个赞
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:161万
展开全部
Entry出来吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式