本人没事写了个小玩意,封装了jdbc,写了个简易的小连接池(只有预先生成连接并管理的功能),还用到了映射。之后我为了测试其并发访问的安全和性能写了3个线程然后使用这个小玩意不断的同时对数据库操作。运行时发现javaw进程和MySQL数据库的进程的内存占用会一点点增加,在运行几分钟后三个线程几乎同时崩掉了(此时我电脑的内存占用率才四分之一),错误信息是内存溢出(Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space
at com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:388)
)我能保证每次操作完数据库都会释放掉PreparedStatement和ResultSet资源,而且把Connection放回连接池,而连接池中的连接始终是一定数量的。请问这是咋回事?为何内存的占用会一点点上升?为何线程会出现内存溢出而崩掉?跟垃圾处理器有关么?