当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 摘要: 过去很多年里面,许多的Java开发人员都一直在问一个问题:“一个Java对象到底耗费多少内存呢?”在本文中,Vladimir Roubtsov用以前的解决方案来解释了这个问题,在此之外,基于他的经验演示了内存的使用,并且还提供了一些技巧来让你的Java程序更加高效。
 

 

 ·windows 2000中如何配置jdk    »显示摘要«
    摘要: java初学者往往对如何配置java开发环境感到迷惑,论坛上也有很多朋友在询问关于jdk配置的问题,特别是配置之后,编译java文件的时候,总是碰到这样一个问题,错误提示为: microsoft windows 2000 [version 5.00.2195] (c) 版权所有 1985-1998 microsoft corp. c:\>javac hellowo......
 ·谨慎使用date和time类    »显示摘要«
    摘要: ava里提供的日期和时间类,java.sql.date和java.sql.time,只会从数据库里读取某部分值,这有时会导致丢失数据。例如一个包含2002/05/22 5:00:57 pm的字段,读取日期时得到的是2002/05/22,而读取时间时得到的是5:00:57 pm. 你需要了解数据库里存储时间的精度。有些数据库,比如mysql,精度为毫秒,然而另一些数据库,包......


你知道数据大小吗?
摘要: 过去很多年里面,许多的java开发人员都一直在问一个问题:“一个java对象到底耗费多少内存呢?”在本文中,vladimir roubtsov用以前的解决方案来解释了这个问题,在此之外,基于他的经验演示了内存的使用,并且还提供了一些技巧来让你的java程序更加高效. 作者:vladimir roubtsov 近来,我们帮助开发了一个java服务器,这是一个类似内存数据库的应用.那就是说,我们特别强调设计,因为设计要特别考虑在内存中缓存大量的数据来提高查询的性能. 一旦我们得到运行的原型,那么在数据从硬盘上宰入经过分析以后,我们自然的决定了数据存储的轮廓.不太满意的初始效果,促使我们寻找更好的解决方案. 工具: 既然java有目的的隐藏了很多内存管理的细节信息,要发现你的对象要消耗多少内存的确要花一些功夫.你可以使用runtime.freememory()方法来测量在一个或者多个对象被分配前前后的堆的变化值.有一些文章,例如(ramchander varadarajans "question of the week no. 107" (sun microsystems, september 2000) and tony sintess "memory matters" (javaworld, december 2001))都详细地介绍了这些方法.但是不幸的是,这些先前的文章的解决方案的失败在于实现中使用了一个错误的runtime方法.即使后来的文章也有它的不完整性. l 调用runtime.freememory() 方法提供的功能是不够的,因为jvm可以在任何时候(只要需要,特别是在运行垃圾收集的时候)决定增加它的当前的堆大小.除非在运行的时候已经使用了参数-xmx指定了堆的最大值,否则我们应该使用runtime.totalmemory()-runtime.freememory()作为在使用的堆大小. l 执行单个runtime.gc()方法并不能保证有效的请求垃圾收集.举例来说,我们可以请求对象的finalizer运行正常.既然runtime.gc()不能保证阻塞到垃圾处理,那么一直等待到当堆大小稳定以后是一个很好的办法. l 如果轮廓类创建了一个静态的数据作为先前的类初始化的一部分,那么堆内存对于第一个类实例的分配的空间应该包括这个数据.我们应该忽略被第一个类实例消耗的堆空间. 考虑这些问题:我们给出了一个sizeof,作为一个工具来查看各种java核心与应用类.
...   下一页
 ·jni开发简单入门篇    »显示摘要«
    摘要: 前言 在有的时候根据项目的需要不可以避免用到本地的东西,最常见的就是java想访问window本地的东东,比如想调节鼠标移动速度、改变窗体底色、甚至用javaapplet做个基于windows的远程控制象pcanywhere那样,怎么办?下面就用个最简单的例子来入门。 步骤 写一个helloworld.java class helloworld { public ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE