摘要:
ObjectPoolObjectPool 定义了一个简单的池接口 BaseObjectPool以下三个类的父类 A simple base implementation of ObjectPool. Optional operations are implemented to either do nothing, return a value indicating it is unsupported or throw UnsupportedOperationException. GenericObjectPool: 采用LIFO/FIFO结构实现ObjectPool接口。池的默认行为是一个LI 阅读全文
摘要:
java GC工作在分代的模型上。大多数的对象要么很快的死亡,要么持续较长的时间。例如,方法栈中创建的对象只会持续几毫秒时间,而缓存中的对象会持续几分钟。既然对象有两种不同的什么周期,直觉认为,使用不同的垃圾收集算法也许能够在不同的周期中更好的完成工作。所以,JVM把堆空间拆封为两个不同的区域,新生代,旧生代。当对象刚开始创建的时候,会被分配到新生代。当对象在新生代中经过多次gc后,依然存活时,就假设这个对象将持续较长时间,就把这个对象复制到旧生代中去。JVM加上启动参数-XX:+UseParNewGC 和 -XX:+UseConcMarkSweepGC将为新生代启用Parallel New 阅读全文
摘要:
SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。 实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指定驱动程序,而在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用JDBC基本不用考虑具体数据库一样,SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方. 阅读全文