java实例:Java中知晓实例大小的方法
疯狂代码 http://CrazyCoder.cn/ :http:/CrazyCoder.cn/Java/Article6079.html 在C/C++中有sizeof()操作,可轻易获知某个类型或实例占用内存大小,sizeof(int)或者 sizeof(newTestClass).可是Java中可没有这么直观的方法可用. 因本人看过不少人写代码总爱写成 ListuserList=newArrayList();//注:声明时即初始化一个空ArrayList userList=userDao.getAllUsers();//注:方法getAllUsers()中会生成一个ArrayList的 上面就造成平白多了一个空的ArrayList(),创建完后即刻就推向GC处置,我就在想这样一个空的ArrayList会 占用多少内存,于是找来了Optimizeit观察后发现一个空的ArrayList要占去24b内存.那Java中有没有更便的 捷的方法呢,于是在网上google\"javasizeof\",引出不少话题. 但我觉得比较好的一段代码是java.sizeOf(http://sourceforge.net/projects/sizeof/),需要JDK1.5以上的版 本支持,由它测定的空ArrayList所占内存确也是24b.下载到SizeOf_0_2_src.zip(其中含SizeOf.jar,其实就一 个类SizeOf),假设解压到F:\\ComponentLibrary\\java\\javasizeof. 用法很简单,直接看它的README.txt文件就行,因为只有一个类,方法也不多,全是静态方法,可以使用 静态引入,看看就明白,只是现在的0.2版本推荐的方法是sizeOf()和deepSizeOf(),而不再是 iterativeSizeOf()的. 它还提供了一个测试代码TestSizeOf(可从中学习SizeOf的用法),在命令行下,进入到 F:\\ComponentLibrary\\java\\javasizeof目录,然后执行 F:\\ComponentLibrary\\java\\javasizeof>javajavaagent:SizeOf.jarnet.sourceforge.sizeof.test.TestSizeOf 显示结果是: JAVAGENT:callpremaininstrumentationforclassSizeOf Startingtest... simpleobj:40.0b int:0.0b long:0.0b char:0.0b double:16.0b boolean:0.0b Integer:0.0b
emptystring:0.0b notemptystring:0.0b notemptystring:0.0b simpleobj:24.0b simpleobj:40.0b emptylist:24.0b 10list:24.0b 20listnostatic:24.0b 1000oarr:816.0b 应该会惊讶一下,为什么会出现那么多0.0b 为什么要用1.5以上版本的jdk,为什么不是用-classpath参数 ,而是-javaagent参数 我们不妨把javasizeof的src目录中源代码导入到eclipse中(相信大多数人都用这个的),可以看到源代码 TestSizeOf,把SizeOf.skipFlyweightObject(true)行注释掉,运行TestSizeOf. 不小心的话,你应该收到java.lang.IllegalStateException:Instrumentationisnull的异常,没错这个 SizeOf用到了JDK1.5后新加入的java.lang.instrument.Instrumentation接口,所以您需要为TestSizeOf设置 VMarguments [Page] -javaagent:\"F:\\ComponentLibrary\\java\\javasizeof\\SizeOf.jar\" (注意到在SizeOf.jar包中的META-INF\\MANIFEST.MF中有PremainClass:net.sourceforge.sizeof.SizeOf,这就是-javaagent:所在意的.指向SizeOf.jar的路径中有空格的话一定 要用双引号引起来) 运行后结果就是: JAVAGENT:callpremaininstrumentationforclassSizeOf Startingtest... simpleobj:40.0b int:16.0b long:16.0b char:16.0b double:16.0b boolean:16.0b Integer:16.0b
- java实例大全pdf > java实例:Java中知晓实例大小的方法
-
java实例:Java中知晓实例大小的方法
下载该文档 文档格式:PDF 更新时间:2010-05-01 下载次数:0 点击次数:1文档基本属性 文档语言: 文档格式: pdf 文档作者: 微软用户 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: 微软中国 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- PDF格式下载
- 更多文档...
-
上一篇:Java线程
下一篇:java实例:用java实现nc功能实例
点击查看更多关于java实例大全pdf的相关文档
- 您可能感兴趣的
- java开发实例pdf java实例开发教程pdf java范例开发大全pdf 手机pdf阅读器java javapdf java教程pdf javaweb开发详解pdf java书籍免费下载pdf java从入门到精通pdf
- 大家在找
-
- · 脣垄qq驴脮录盲脠脣脝酶脠铆录镁7.2
- · 禁止大型客车驶入图标
- · 临沂模具厂
- · 铁路调车线容车数
- · 深圳房屋出租信息
- · 职高高一语文期中试卷
- · 服装搭配技巧论文
- · 安徽退役士兵安置考试
- · 医道官途就爱读书
- · 路由器当集线器
- · 本田crv改装
- · 福临之都市逍遥400
- · 自主式管理情感化教育
- · 电气自动化女生
- · u盘装ghost的win7系统
- · www.boc.cn网银
- · 瘙痒治疗最好的药
- · 高级电工考试试题
- · csol剧毒之伤卡天
- · cf激浪兑奖网站
- · 远征ol下载
- · 客厅装修设计图
- · 重金属污染的数模论文
- · www.7k7k.com
- · 传染病预防教案
- · 加油站施工组织设计
- · 劳动法课件
- · 有道英译汉词典
- · 最新电影在线观看优酷
- · 流沙打英歌
- 赞助商链接