做java以来第一次遇到内存溢出的情况,刚开始是一脸懵逼的!
个人发现java会出现内存溢出的情况,其原因是:死循环、过深的递归(包括自己调用自己的部分情况,自己调用自己有时会陷入递归出不来)
解决办法:找到报错的那一行,消除死循环或者过深的递归即可!
报错信息:
严重: Servlet.service() for servlet [springmvc] in context with path [/OABase] threw exception [Handler processing failed; nested exception is java.lang.StackOverflowError] with root cause
java.lang.StackOverflowError
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
at com.mfc.dao.CheckinginDaoImpl.getCheckinginDetails(CheckinginDaoImpl.java:33)
..................................................

本文分析了一次Java内存溢出的问题,原因在于代码中存在过度递归调用导致堆栈溢出。通过调整递归逻辑成功解决了问题。
3798

被折叠的 条评论
为什么被折叠?



