`

Apache 开源软件学习

 
阅读更多

 

重要摘要

 

对象池化技术

对象池化的基本思路是:将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销。用于充当保存对象的“容器”的对象,被称为“对象池”(Object Pool,或简称Pool)。

对于没有状态的对象(例如String),在重复使用之前,无需进行任何处理;对于有状态的对象(例如StringBuffer),在重复使用之前,就需要把它们恢复到等同于刚刚生成时的状态。由于条件的限制,恢复某个对象的状态的操作不可能实现了的话,就得把这个对象抛弃,改用新创建的实例了。

并非所有对象都适合拿来池化――因为维护对象池也要造成一定开销。对生成时开销不大的对象进行池化,反而可能会出现“维护对象池的开销”大于“生成新对象的开销”,从而使性能降低的情况。但是对于生成时开销可观的对象,池化技术就是提高性能的有效策略了。

 

 

PoolableObjectFactory、ObjectPool和ObjectPoolFactory

在Pool组件中,对象池化的工作被划分给了三类对象:

PoolableObjectFactory用于管理被池化的对象的产生、激活、挂起、校验和销毁;

ObjectPool用于管理要被池化的对象的借出和归还,并通知PoolableObjectFactory完成相应的工作;

ObjectPoolFactory则用于大量生成相同类型和设置的ObjectPool。

相应地,使用Pool组件的过程,也大体可以划分成“创立PoolableObjectFactory”、“使用ObjectPool”和可选的“利用ObjectPoolFactory”三种动作。


 

commons-pool-1.6包:对象池技术以后似乎可以用到开发中来

 


Commons-Digester、javassist简介

commons-io
分享到:
评论

相关推荐

    常用开源软件说明手册

    ### 常用开源软件说明手册 #### 引言 随着信息技术的发展,开源软件因其免费、可定制化等优势,在各个领域得到了广泛的应用。本文档旨在帮助读者对现有的开源软件有一个初步了解,涵盖了一些常见的开源软件及其应用...

    开源软件之道(中文高清版)

    同时,开源软件的高质量、灵活可定制性、公开透明度和良好的学习平台优势也得到了阐述。开源软件的未来则与技术的发展和行业的实际需求紧密相连,开源社区的壮大和领袖人物的推动为开源软件的发展注入了持续动力。 ...

    apache优秀Java开源项目源代码—— apache-roller!

    Apache Roller是一款功能强大的开源博客系统,它由Apache软件基金会维护,是Java开发者学习和研究的绝佳实例。通过深入分析Roller的源代码,我们可以了解到Java Web应用开发的多个关键知识点,包括但不限于以下方面...

    开源软件知识产权风险防控研究报告(2019年).zip

    开源软件在信息技术领域扮演着至关重要的角色,它们推动了技术创新,降低了开发成本,并促进了全球协作。然而,与开源软件的广泛使用相伴而来的是一系列知识产权风险,这些风险如果不妥善管理,可能会对企业和个人的...

    我的一些开源软件 我的一些开源软件我的一些开源软件

    标题中的“我的一些开源软件”表明这是一个包含作者个人贡献或收集的开源软件集合。开源软件是指源代码可以被公众查看、使用、修改和分发的软件。这些软件通常遵循特定的开源许可证,如GPL、MIT或Apache License等,...

    开源软件之道.part2of2

    第1篇 了解开源软件 第1章 开源软件概述 2 1.1 开源软件的理解 2 1.2 开源软件的定义 3 1.3 开源软件定义的意义 5 1.4 开源软件和其他类型软件的比较 6 第2章 开源软件的历史与未来 9 2.1 开源软件的历史 9 2.2 开源...

    人工智能开源软件发展白皮书2018版

    《人工智能开源软件发展白皮书2018版》详细阐述了在21世纪这个信息爆炸的时代,人工智能(AI)技术的崛起与开源软件的紧密结合,如何推动了全球科技发展的新纪元。这份报告深入剖析了人工智能开源软件的现状、挑战、...

    全开源软件库源码.zip

    【标题】"全开源软件库源码.zip"指的是一个包含了完全开源的软件库源代码的压缩文件,这个文件主要是为了方便开发者研究、学习或者在自己的项目中使用这些源码。开源意味着所有代码对公众开放,允许用户查看、修改和...

    华为 IVS1800 8.1.0 开源软件申明

    【华为 IVS1800 8.1.0 开源软件申明】 华为IVS1800是一款先进的智能视频存储与分析平台,专为机器视觉应用设计。该产品结合了华为在人工智能和视频处理领域的技术优势,为城市安全、交通管理、商业智能等多个领域...

    开源软件与AWS云服务概述.pdf

    AWS提供了多种云服务,包括计算、存储、数据库、分析、机器学习等,这些服务与开源软件相结合,可以构建出高度可扩展、高可用和成本效益的解决方案。例如,开发者可以利用AWS Lambda配合开源函数计算框架,如...

    Apache_JMeter基础学习

    Apache JMeter是一款由Apache组织维护的开源软件,它是一款100%纯Java桌面应用,主要用于压力测试和性能测量。最初设计目的是为了测试Web应用,但随着时间的推移,其功能已扩展至测试其他类型的资源和服务,如静态和...

    开源软件的许可证介绍

    开源软件的许可证是开源世界中的重要组成部分,它们规定了用户可以如何使用、修改和分发开源软件。...开源许可证的学习和理解不仅对程序员有益,也是任何使用开源软件的企业和个人需要掌握的基础知识。

    基于开源软件的高校学生网上评教系统.pdf

    开源软件给用户带来的最大好处是可以节约成本况且开源软件的安全性、非依赖性和开放学习的哲学都使其在国内外高校中变得越来越流行。 本文对基于开源软件的高校学生网上评教系统的设计思想、数据结构及关键技术进行...

    apache开源分布式分析引擎软件kylin实战教程 (完整视频+课件+代码+软件工具)

    Kylin架构和原理 Kylin安装和配置 数据集成和ETL处理 数据建模和多维分析设计 查询优化和性能调优 ...通过这些主题的学习,您可以了解到Kylin的基本特点和使用方法,并且可以将其应用于实际的数据分析任务中。

    java的Apache组件学习Demo

    在Java编程领域,Apache软件基金会提供了许多优秀的开源组件,这些组件极大地丰富了开发者的工具箱,提高了开发效率。本篇文章将深入探讨标题为"java的Apache组件学习Demo"中的几个关键组件:IO、Lang、Bean、...

    开源软件知识产权风险防控研究报告.rar

    报告首先介绍了开源软件的基本概念和类型,包括公共许可证、copyleft和permissive licenses,如GPL、LGPL、MIT和Apache等。这些许可证规定了如何使用、修改和分发开源代码,对于开发者来说理解其条款至关重要,因为...

    开源项目-apache-beam.zip

    在实际应用中,Apache Beam常用于ETL(提取、转换、加载)流程、实时数据分析、机器学习模型的训练和预测等场景。由于其强大的抽象和灵活性,它也成为了数据科学和大数据处理领域的一个热门选择。 综上所述,Apache ...

    apache学习手册

    Apache是世界上最流行的Web服务器软件,它开源且免费,支持多种操作系统平台,如Windows、Linux、Unix等。"Apache学习手册"作为一个针对初级入门者的工具书,旨在帮助新手快速理解和掌握Apache的基本概念、安装配置...

    apache_服务器软件

    Apache服务器软件是世界上最广泛使用的Web服务器之一,以其开源、免费和高度可定制的特性而闻名。这个软件提供了在互联网上托管网站和应用的基础,对于学习网络服务器管理和开发人员来说是必不可少的知识点。 ...

    apache学习资料

    Apache作为一款开源的Web服务器软件,不仅拥有强大的功能和广泛的使用场景,还具备良好的扩展性和安全性。通过对Apache的学习和掌握,能够帮助开发者和系统管理员更好地搭建和维护Web服务。希望以上内容能为你理解和...

Global site tag (gtag.js) - Google Analytics