Java开发平台中的生命周期管理

对象的生命周期没有大家想的那么复杂。其实其就是回答了两个简单的问题。什么时候需要创建对象? 什么时候把对象消亡?这两个问题解决了,那么对象的生命周期问题也就解决了。

一、传统的对象生命周期管理方法。

为了对Java开发平台中的生命周期管理方法有一个更加深刻的理解,笔者认为大家需要对传统的生命 周期管理方法先有一个了解。因为这有助于大家有一个相互的对比,从而会对Java语言中的生命周期管理 方法会有一个比较直观的印象。

在传统的编程语言中,如C语言,其考虑对象的生命周期,主要是从对象与应用程序的执行效率出发的 。为了追求应用程序最大的执行效率,C语言要求在编写应用程序的时候程序开发人员必须确定对象的存 储空间与生命周期,既可以通过堆饯或者限域变量来实现。这么设计的话,好处是很明显的。由于在程序 开发的时候就涉及好了对象的存储空间与生命周期,那么在程序运行的时候就不需要再花精力去创建对象 。应用程序开发人员需要知道的是,在堆栈中创建与释放对象的存储空间是一件很容易且不用花费多少时 间的事情。如在堆栈中创建对象空间只需要一条将栈顶指针向下移动的汇编指令,另一条汇编指令对应释 放存储空间所需的将栈顶指针往上移动即可。所以应用程序的执行速度就会比较高,可以将对象存储空间 的分配和释放置于比较有限考虑的地位。

但是这种管理方法的最大缺陷就是灵活性不高。因为在应用程序开发的时候就必须要知道对象的确切 数量、生命周期和存储空间。如果后续需要对应用程序进行二次开发或者功能升级,如果涉及到添加新对 象的话,那么修改的工作量就会很大。而且对于普通的应用程序开发人员来说,很难对所需要的对象的数 量与生命周期,做出一个准确的预计。可见,这种管理方式虽然可以保证应用程序的最大运行速度,但是 其局限性也是蛮大的。其不仅灵活性不高,而且对于应用程序开发者有更高的要求。

二、Java平台下的对象生命周期管理方法。

在Java语言平台下,其与传统的对象管理方法有很大的不同。在Java语言平台下,叫做动态创建对象 。简单地说,就是不是在应用程序开发的时候创建对象,而是在应用程序运行的过程中动态的根据需要建 立对象。与上面的对象生命周期不同,动态的创建对象,只在应用程序运行的时候才会考虑需要创建多少 对象,他们的生命周期有多久,对象的类型是什么等等。这些问题只有在应用程序代码被执行的那一刻才 能够最终的确定下来。在应用程序开发的过程中不需要关注这些问题。如在Java语言开发中,一开始不需 要建立对象。在需要对象的时候,可以利用new关键字来创建一个对象。

很明显,由于对象的创建与消亡都是在应用程序运行的时候动态管理的,为此其灵活性要比传统的静 态管理方式要高。当需要新的对象相时,只需要在代码中利用NEW关键字创建一个即可,而不需要对其他 的内容进行更改。为此,象Java这种采用动态机制来管理对象生命周期的语言,往往被认为其在升级、二 次开发上面都比传统的C语言程序要高。而且由于在需要的时候创建对象,为此对于应用程序开发者的要 求也相对比较低一点。应用程序开发人员进入Java语言的门槛也会低许多。

时间: 2024-08-31 12:52:35

Java开发平台中的生命周期管理的相关文章

Windows 8风格应用开发入门 三十 应用生命周期管理

开发入门 三十 应用生命周期管理-风格型产品生命周期"> Windows 8 中可以启动多个应用并在其中切换,我们没有必要担心降低系统速 度或消耗电池电量. 因为系统会自动挂起(有时会终止)在后台正在运行的应用.设计良好的应用可 以由系统挂起.终止以及重新启动,并且这些过程看起来该应用一直在运行中. 一.原理 1.当激活了应用时,无论任何原因,系统都会发送 Activated 事件 2.每当用户切换到桌面 或其他应用时,系统都会挂起你的应用,系统会发送Suspending事件 3.每当用户

SOA质量管理在SOA服务生命周期管理中的角色

简介:本文来自于 Rational Edge:本文介绍了 SOA 服务生命周期管理,并 且阐述了 SOA 质量管理以及 IBM Rational 工具及最佳实践的支持对于将 SOA 开发活动与业务目标相结合的重要性. 好的治理是构建成功的面向服务的体系结构(Service Oriented Architecture,SOA)的基础.SOA 治理是使各种业务单位和 IT 涉众确保他们共 同设计的 SOA 是真正跨企业的.缺乏恰当的治理会令您很难获取将 SOA 的业务 价值最大化的业务过程敏捷性和投

浅谈Java生命周期管理机制_java

先扯再说 最近一直在研究某个国产开源的MySQL数据库中间件,拉下其最新版的代码到eclipse后,启动起来,然后做各种测试和代码追踪:用完想要关闭它时,拉出它的STOP类想要运行时,发现这个类里赫然只写以下几行代码,于是我感觉瞬间受到了很多伤害. public static void main(String[] args) { System.out.println(new Date() + ",server shutdown!"); } 这个中间件启动和运行的时候,开启了监听,启动着

应用生命周期管理中的云安全

当"应用程序"是运行在单一服务器上的巨大软件的一个单元时,应用程序生命周期管理(ALM)将仍然会是一个挑战,这是因为为了在整个软件改变的级别上维持业务运营的需求.随着在员工一侧的云计算与弹性资源,多供应商集成.模块化和编排的结合,挑战也被放大了.放大效果非常严重的地方是安全领域.像其它在应用部署中的需求一样,云安全需求应该在ALM中得到反应,而不是靠运气. 在ALM中,应用程序贯穿在开发/修改.测试.展示,部署.生产/运营.版本管理和然后从头开始的整个迭代周期中.在传统的静态数据中心部

谈谈应用生命周期管理中的云安全

当"应用程序"是运行在单一服务器上的巨大软件的一个单元时,应用程序生命周期管理(ALM)将仍然会是一个挑战,这是因为为了在整个软件改变的级别上维持业务运营的需求.随着在员工一侧的云计算与弹性资源,多供应商集成.模块化和编排的结合,挑战也被放大了.放大效果非常严重的地方是安全领域.像其它在应用部署中的需求一样,云安全需求应该在ALM中得到反应,而不是靠运气. 在ALM中,应用程序贯穿在开发/修改.测试.展示,部署.生产/运营.版本管理和然后从头开始的整个迭代周期中.在传统的静态数据中心部

ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理

ServiceProvider最终提供的服务实例都是根据对应的ServiceDescriptor创建的,对于一个具体的ServiceDescriptor对象来说,如果它的ImplementationInstance和ImplementationFactory属性均为Null,那么ServiceProvider最终会利用其ImplementationType属性返回的真实类型选择一个适合的构造函数来创建最终的服务实例.我们知道服务服务的真实类型可以定义了多个构造函数,那么ServiceProvid

中国企业必须通过 DevOps 加速数字化转型:以应用生命周期管理数字化为起点

中国企业必须通过 DevOps 加速数字化转型,以应用生命周期管理数字化为起点. 那么问题来了:传统企业该如何与在数天之内就能够完成新服务项目开发的互联网企业竞争呢?数字化企业在必须为客户提供相应的数字化体验之外,同样需要做到实现自身的高效数字化运营.Forrester 认为,中国企业的科技管理层和企业架构师们必须将 DevOps 和持续交付(Continuous Delivery) 设为其企业数字化发展战略的两大基石. Forrester 将 DevOps 定义为: 企业的开发与运维部门与业务

谷歌等公司重写 OpenStack 生命周期管理工具

虽然OpenStack已经成为受欢迎的开源云软件堆栈,但是另一方面,它的DevOps项目Fuel却在赢得用户方面遇到难题.现在,谷歌.英特尔和Mirantis正在重写以利用Kubernetes作为底层调度引擎. 聪明之举! 从Fuel原设计者的方方面面来看,这个工具从来就没有崛起.另一方面,Kubernetes已经拥有了很多用户. 正如大多数人所知,Kubernetes是一个容器管理和DevOps项目.在 OpenStack上,Kubernetes部署将利用Docker容器.基于Kubernet

谷歌、英特尔和Mirantis重写OpenStack生命周期管理工具

虽然OpenStack已经成为受欢迎的开源云软件堆栈,但是另一方面,它的DevOps项目Fuel却在赢得用户方面遇到难题.现在,谷歌.英特尔和Mirantis正在重写以利用Kubernetes作为底层调度引擎. 聪明之举! 从Fuel原设计者的方方面面来看,这个工具从来就没有崛起.另一方面,Kubernetes已经拥有了很多用户. 正如大多数人所知,Kubernetes是一个容器管理和DevOps项目.在 OpenStack上,Kubernetes部署将利用Docker容器.基于Kubernet