Java JSP如何取得HashMap的大小

如何取得HashMap内对象的大小,即其内容所内存资源多少字节。知道的告诉一下,不胜感谢!
KeepMoving_OK :这种方法统计的内存大小只有Java使用的内存吗?如果不是,怎样保证统计结果的准确性??? 感觉此路不通。。有没有其他的方法?
曾经想过序列化,不过序列化首先要求继承Serializable,程序就改大了,希望能有个方法改动小一些,直接取对象大小,或者计算response大小也行。

Java里面没有提供像C,C++那样的Sizeof()方法,所以不可以直接取得内存资源大小.

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

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

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

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

还有一个办法就是上面这么兄弟说得,用序列化.把HaspMap序列化(其实就是写入到一个临时文件).然后这个临时文件得大小,就是内存占用得大小.这个可以精确到KB,但是效率上,值得考究.
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-23
在jsp页面中 可以在<% %> 中间添加java代码.
则可以
<% Map map = new HashMap();
int size = map.size();

%> //如果map就是你要获取size的Map
在javascript代码中 可以通过
var size = '<%=size>'; // 获得size本回答被网友采纳
第2个回答  2010-01-19
你是说map的大小还是map里面的对象的字节数?
如果是前者的话就直接size就出来了
后者的话,可以通过序列化来得到
第3个回答  2010-01-20
Entry出来吧

Java JSP如何取得HashMap的大小
还有一个办法就是上面这么兄弟说得,用序列化.把HaspMap序列化(其实就是写入到一个临时文件).然后这个临时文件得大小,就是内存占用得大小.这个可以精确到KB,但是效率上,值得考究.

如何利用java和jsp实现 两个jsp table中的 数据对比,如图所示
这个很简单呀,两个table,在后台肯定有对应的数据集吧。例如说两个List<HashMap>,然后在绑定界面的时候,总计那栏就把前三项(A1+A2+A3、B1+B2+B3)相加后输出显示,而对比结果就是(A1+A2+A3-B1-B2-B3)

在JSP页面中如何使用两个el表达式之间乘法运算,在合计中显示总的金额...
回答:你这显示的数据存在hashmap里面的咯,你在用foreach遍历这个哈希表之前,先用c标签定义一个价格计数的变量,priceCount,然后你在foreach遍历hashmap的时候呢,foreach里面priceCount= priceCount+单个对象合计的价格,遍历完了你的总价格也就加完了,然后在foreach外就可以显示这个总价格了

jstl怎么取hashmap的值
String tempVal = "name";{map.name} {map[tempVal]}

java后台把一个对象 放入map中 传到jsp页面 页面中怎么把这个对象取出...
把最后的一个get(“user”)去掉就行了。最后你还是分步来吧,这样写以后不好维护。1.获取你方法的map HashMap<String,Object> map = (HashMap<String,Object>)request.getParameter("map"));2.遍历map中的数据 User user = (User)map .get("user");Food food = (Food)map.get("foods");...

如何在jsp中使用java类
其实跟鞋普通类是一样的 1.在jsp那里导入包 <%@page import="java.util.*"%> 然后就可以在<% %>里面使用对应的类 比如<% new HashMap();%> 2.写类名的时候写全名 <% new java.util.HashMap();%>

JSP声明了一个hashmap(Map map = new HashMap),put了3个键值,问 out...
不会错,但是打印不出来你的要的那个3个值,打印出来的是内存地址。

jsp页面像action中传值问题,需要传递一个map
一定要通过表单提交吗,这个比较麻烦,因为通过表单提交的数据,到后台都是字符串数据,还得写长法实现数据的转换 如果说不一定,可以考虑用session,这就简单了,页面先存,后台取,至于如何遍历,方法很多,一搜一大堆 存 session.setAttribute("map",map);取 Map map = (HashMap)session.getAtrribute("map"...

JSP中,常用的集合类有哪些?他们之间有什么差别?
HashMap和Hashtable都是java的集合类,都可以用来存放java对象,这是他们的相同点 以下是他们的区别:1.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是java 1.2引进的Map接口的一个现实。2.同步性:Hashtable是同步的,这个类中的一些方法保证了Hashtable中的对象是线程安全的,而HashMap则是...

如何jsp获取Map中某个key对应的值,条件:不使用Java代码!
el表达式可以用么?打个比方,看下面这段代码:Map<String, String> map = new HashMap<String, String>();map.put("name", "菜菜");request.setAttribute("map", map);页面上面取得的时候,用el表达式可以这样写:{ map['name'] } 试试看,能不能满足你的要求。天天开心哈。。。:)...

相似回答