Java中的池类是什么?

Java中的池类是什么?,java,android,class,object,pool,Java,Android,Class,Object,Pool,我不明白Java中的池、池对象工厂和“自由对象”是什么。我正在学习android中使用的java,我遇到了一个Pool类。我在网上搜索了一下,发现它们是用来回收的,我收集的是用来保存记忆的,但我不知道到底是怎么收集的。我是Java新手。池有多种用途,例如 重用对象而不必销毁和重新创建它们 限制所创建对象的数量 等等 假设您需要一个类型为A的对象,而不是调用newA()来创建它,并在不再需要时删除引用或销毁该对象,而是请求A池为您提供一个实例,在不需要时将其交还给您。在这种情况下,池决定是否创

我不明白Java中的池、池对象工厂和“自由对象”是什么。我正在学习android中使用的java,我遇到了一个Pool类。我在网上搜索了一下,发现它们是用来回收的,我收集的是用来保存记忆的,但我不知道到底是怎么收集的。我是Java新手。

池有多种用途,例如

  • 重用对象而不必销毁和重新创建它们
  • 限制所创建对象的数量
  • 等等

假设您需要一个类型为A的对象,而不是调用
newA()
来创建它,并在不再需要时删除引用或销毁该对象,而是请求A池为您提供一个实例,在不需要时将其交还给您。在这种情况下,池决定是否创建或重用一个新实例,如果没有更多的“空闲”实例,该怎么办,以及当实例返回(释放)时该怎么办

  • 重用对象而不必销毁和重新创建它们
  • 限制所创建对象的数量
  • 等等

假设您需要一个类型为A的对象,而不是调用
newA()
来创建它,并在不再需要时删除引用或销毁该对象,而是请求A池为您提供一个实例,在不需要时将其交还给您。在这种情况下,池决定是创建还是重用一个新实例,如果没有更多的“空闲”实例,该怎么办,以及当实例返回(释放)时该怎么办。

当大量客户端(程序)访问资源而不是池开始工作时。假设有5个活动通道可以访问该资源,并且当6个用户试图访问该资源时,超过6个的资源将被拒绝,访问资源数据的应用程序将显示连接失败。但是,如果我们使用池,则第6个用户将等待池配置中定义的特定时间,并且如果在该时间之前,任何客户端释放了资源,则第6个用户将可以访问该资源,并且连接不会被拒绝。
最大等待客户端数最大等待时间是配置参数。

当大量客户端(程序)访问资源时,池开始起作用。假设有5个活动通道可以访问该资源,并且当6个用户试图访问该资源时,超过6个的资源将被拒绝,访问资源数据的应用程序将显示连接失败。但是,如果我们使用池,则第6个用户将等待池配置中定义的特定时间,并且如果在该时间之前,任何客户端释放了资源,则第6个用户将可以访问该资源,并且连接不会被拒绝。
最大等待次数客户端最大等待时间是配置参数。

示例:当对象需要时间实例化且响应时间为临界值时(例如,数据库连接),拥有池允许缩短实例化时间。示例:当对象需要时间实例化且响应时间为临界值时(例如,数据库连接),拥有一个池可以缩短实例化时间。哦,谢谢。但是什么是池工厂?我从你说的话中收集到,通过创建一个池a,我也可以同时创建多个实例a?池工厂将是一个工厂类,它创建一个池a并为你处理细节,也就是说,你很可能只需通过一组参数和/或选择工厂类型,让它为您创建一个池(提示:谷歌“工厂模式”)。A的池允许您拥有A的多个实例,数量取决于池的设置。
SimplePool
SynchronizedPool
之间的实际区别是什么?@Suragh您可能希望提供有关您所指的类(例如库)的更多信息但是从名称上看,至少有一个明显的区别:
SynchronizedPool
应该是同步的,因此线程安全,但速度也慢了一点。哦,谢谢。但是什么是池工厂?我从你所说的收集到,通过创建a的池,我也可以同时创建a的多个实例?池工厂应该是一个工厂类,它创建一个工厂池并为您处理细节,即您很可能只需传递一组参数和/或选择工厂类型,然后让它为您创建一个池(提示:google“factory模式”)。A的池允许您拥有A的多个实例,数量取决于池的设置。
SimplePool
SynchronizedPool
之间的实际区别是什么?@Suragh您可能希望提供有关您所指的类(例如库)的更多信息但从名称上看,至少有一个明显的区别:
SynchronizedPool
应该是同步的,因此线程安全,但速度也稍慢。为什么没有池的应用程序会拒绝连接?它很可能会使用池来检查空闲连接的数量,在许多情况下,当池为空时,它不会拒绝连接'不是阻止的池,而是对池为空做出反应的应用程序。为什么没有池的应用程序会拒绝连接?它很可能会使用池来检查空闲连接的数量,在许多情况下,当池为空时,阻止的不是池,而是对池为空做出反应的应用程序。