当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

Java及时操纵程序中的内存管理[Java编程]

赞助商链接



  本文“Java及时操纵程序中的内存管理[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

利用Java的一个主要长处就是无需耽忧废弃对象,即,让Java运行时负责Java对象的内存管理.

这是通过让Java运行时对不再利用的Java对象举行垃圾汇集而实现的.

垃圾汇集是一个对比复杂的历程.普通,Java运行时会遍历堆,查抄不再被其他对象引用、从而可以安全删除的对象,但是,由于垃圾汇集占用CPU周期,所以它大概会影呼利用程序代码的履行.即,假如在履行利用程序代码的历程中履行垃圾汇集,则利用程序代码的呼应时间大概延伸.这会招致用户事件耽误的延伸.更为糟糕的是,因为用户不知道什么时刻会举行垃圾汇集,因此耽误的延伸是不可预知的.

及时利用程序有严峻的时间要求,即,它们必须在肯定的、已知的耽误条件下履行利用程序代码.因此垃圾汇集所惹起的不可预知的耽误延伸就成为一个问题.

那么这个问题的办理筹划是什么呢?一个明显的办理筹划就是不要对及时利用程序利用Java.这是一个下下选.作为一种编程语言和一个开辟平台,Java具有很多长处.我们应当可以办理Java中的这个问题.

另一种办理筹划是在Java中利用另一种内存管理办法来替换垃圾汇集程序.RTSJ (Real-Time Specification for Java)定义了immortal memory和scoped memory的概念.不朽内存(Immortal memory)是从不举行垃圾汇集的内存,只要JVM存在,它就也存在.作用域内存(Scoped memory)则是按块分配和释放的内存.即,用户显式地成立一个内存区域来存放对象,该区域中的对象将在该区域被销毁时释放.不管是不朽内存还是作用域内存,都不需求举行垃圾汇集.不过,这也有一个缺陷:管理内存的重担又落在了用户身上,就像C/C++利用程序一样.这个代价仍旧很高.有没有更好的办法呢?

我们来重新考虑一下垃圾汇集.垃圾汇集的主要问题是它所惹起的不可预知的耽误峰值.可否避免这种不可预知的行为呢?大概,可否限制(即约束)这种不可预知的行为呢?通过更频繁地履行垃圾汇集,我们便可以限制最大耽误时间.这就是WLRT所采取的办法.因此,垃圾汇集成为一项可预知的任务,具有已知的代价,从而使及时开辟人员可以按照需求举行考虑和建模.并且,更为重要的是,我们没有牺牲Java的易用性.

注:应当注意的是,固然有垃圾汇集和其他的内存管理技术,Java程序仍旧大概存在内存泄露.比方,在下述情形下:在不需求组件对象时,却没有将其安闲器中移除.


  以上是“Java及时操纵程序中的内存管理[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .