分享到:

Java垃圾收集机制及性能调节

0引言Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被引用,则为垃圾对象,可以回收其占据的空间,用于再分配。垃圾收集算法的选择和垃圾收集系统参数的合理调节直接影响着系统性能,因此需要开发人员做比较深入的了解。1垃圾收集算法及其实现1.1垃圾收集基本算法引用计数法、标记清除法和节点复制法是3种基本的垃圾收集算法。在引用计数法中,每一个对象保存着所有其它对象对它的引用数。当有新的引用指向某个对象时,对应的引用数加1,当原有的引用减少时,引用数则减1,当某个对象的引用数减为0时,就可以认为该对象为垃圾对象,可以予以回收。引用计数法的不足之...  (本文共4页) 阅读全文>>

《福建电脑》2006年03期
福建电脑

Java程序中内存泄漏的原因﹑检测和避免

1引言Java区别与其他语言的一个重要优点就是它通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用free(),delete()等函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,只是它的表现与C++不同而已。在大型企业系统中,Java代码中的内存泄漏是常见而且难于解决的问题。这些泄漏问题通常是在部署之后被发现的,难于在测试环境中得到重现。理由之一是,已部署的系统需要处理更大量的数据,而且有可能在执行数周之后才会发现Java堆在缓慢地增长。因此,程序在长期的运行过程中,即使每次运行少量泄漏,最终,这将导致系统内存耗尽。2产生java内存泄漏的原因2.1 Java的内存管理是什么导致了Java程序中的内存泄漏呢?难道Java虚拟机(JVM)的垃圾收集器...  (本文共2页) 阅读全文>>

《计算机应用与软件》2006年01期
计算机应用与软件

基于JAVA的业务规则管理系统设计和开发

1引言 在企业实体中存在着各种各样的规则,像管理制度、业务手 册、工艺流程、操作规范、收费标准、促销策略等都是规则,甚至 一些没有形成文字的惯例,也是企业规则的一部分,因为是与业 务相关,所以称它们为业务规则,用来描述、约束和控制商业的 结构、运作和策略。在当前大多数信息化系统中,业务处理逻辑 总被看成一个个过程写进程序代码中,分散地隐藏在代码、数据 库、存储过程或者触发器中。在信息和技术日新月异的今天,企 业为了紧随时代节奏和增强竞争力,对本身的业务规则的调整 也在加速,势必提高信息化系统中业务逻辑的更改频率,在这样 的背景下,这样的信息化系统更凸现出以下几个问题: (l)修改业务逻辑是牵一发而动全局的事情,需要软件工 程师经过需求分析、设计、编码、测试、发布等环节。对以代码、 触发器和存储过程等程序形式分布在原系统业务逻辑进行修 改,任务繁重,修改周期长,而且也增加了原系统的不稳定性。 (2)业务逻辑的修改必须由软件工程师完...  (本文共3页) 阅读全文>>

《自动化仪表》2006年02期
自动化仪表

基于无线Java的远程监控系统研究

0引言Internet的应用推动了工业控制领域远程监控技术的发展。但对于其他领域(如气象、环保、地质、水文、农业等)的远程监控系统,这种有线网络通信的方式不再适用,因此基于GSM/GPRS、专用AM/FM无线方式的远程监控系统在近年来得到了越来越广泛的应用。其中,由于GSM/GPRS、CDMA公司技术成熟,应用系统初期投资低,组网方便,维护简单,所以成为节点分散、实时性要求相对不严格的远程测控系统的首选。远程监控系统的现场终端一般采用嵌入式结构,它对耗电量有较严格的要求,并且微控制器处理速度较低、存储单元少,如水文无人监控站、气象监测点以及POS机等。随着实际应用要求的不断提高,现有无线远程监控技术面临新的挑战:要求具备更高的数据传输速度,支持内部应用程序自动升级,以及实现开放式软硬件系统结构。最近发展起来的无线Java技术具备平台无关性,代码短小,并且支持程序实时下载、动态加载运行,将在该领域发挥重要的作用。支持J2ME的嵌入...  (本文共4页) 阅读全文>>

《计算机系统应用》2006年05期
计算机系统应用

JAVA语言静态变量和静态方法的分析及其应用研究

1引言 JAVA语言已经与lmernet的在线环境密不可分, 但它首先是一种编程语言。而变量是编程语言中非常 重要的概念,对于JAVA当然也不例外。由于」AVA是 完全面向对象的,这个特点使得」AVA的变量可以分为 类变量和实例变量两大类,即静态变量和非静态变量, 同样地,方法也分成静态方法和非静态方法。了解和 掌握它们各自不同的特点和适用环境,才能充分利用 好」AVA这个工具,开发出性能更良好的系统。 2静态变量 类是组成」AVA程序的基本要素,它有两种基本成 分:变量和方法,称为成员变量和成员方法。成员变量 的声明格式如下: [Publie」[ProfeCtedIPriVate」〔Static〕[月nal〕〔tron- sient〕[volatile〕tyPe variableName; 其中,关键词Stotic是用来限定该成员变量为类变 量,也就是静态变量,而没有用static修饰的成员变量 则是实例变量,即非静态变量。静...  (本文共4页) 阅读全文>>

《科学之友(学术版)》2006年04期
科学之友(学术版)

JAVA实现数据结构链表相关程序

链表是一种重要的数据结构,在程序设计中占有很重要的地位。C语言和C++语言中是用指针来实现链表结构的,由于Java语言不提供指针,所以有人认为在Java语言中不能实现链表,其实不然,Java语言比C和C++更容易实现链表结构。Java语言中的对象引用实际上是一个指针,所以可以编写这样的类来实现链表中的结点。下面的这个程序(程序运行环境:j2sdk1.4.2)就把链表的删除接点(头结点,尾结点),以及链表的遍历、倒链结合到了一起。public class List{private int item;//定义链表结点的数据域private List next;//定义链表结点的指针域public static List head=new List(0);//定义链表的头指针public List(int newItem){item=newItem;next=null;}public List(int newItem,List nex...  (本文共2页) 阅读全文>>