类的相互依赖导致StackOverflowError
2024-09-08 09:38:07
public class SchoolServiceImpl {
private static SchoolServiceImpl instance = new SchoolServiceImpl();
private static ClassServiceImpl classServiceImpl = ClassServiceImpl.getInstanse();
public static SchoolServiceImpl getInstanse() {
if (instance == null)
return instance = new SchoolServiceImpl();
return instance;
} public int getSchoolCount() {
return classServiceImpl.getClassesCount();
} public static void main(String[] args) {
System.out.println(classServiceImpl.getClassesCount());
}
}
public class ClassServiceImpl { /**
* @param args
*/
private static ClassServiceImpl instance = new ClassServiceImpl();
public static ClassServiceImpl getInstanse() {
if (instance == null)
return instance = new ClassServiceImpl();
return instance;
}
private static SchoolServiceImpl schoolServiceImpl=SchoolServiceImpl.getInstanse(); public int getClassesCount()
{
System.out.println(classServiceImpl.toString());
return schoolServiceImpl.getSchoolCount();
}
}
如上两个类彼此依赖当中的方法。导致死循环,终于导致内存溢出。
从中得到的教训:尽可能降低类的彼此依赖,做到单向依赖。
最新文章
- Oracle新增客户端网络配置使用scott出现错误
- 自定的TableView
- Service的两种启动方法
- 百度全站变https
- ISO和UDF光盘格式、扩展ISO9660----Joliet和Romeo文件系统
- MATLAB一句总结
- ABP官方文档翻译 6.3 本地化
- 如何实现win7系统多用户同时远程登录
- css溢出显示省略号
- 安装win10 和win中的一些杂项问题
- ME5xN(x:1-2): custom column is editable in Subscreen Item but not in ALV grid
- ORA-16038 ORA-19809 ORA-00312
- leetcode315
- php json 解析有stdClass Object 解决办法
- 20165333实验三 敏捷开发与XP实践
- 【C++程序员学 python】python 之变量
- JDBC 元数据信息 getMetaData()
- git 关联远程分支
- Spring装配各种类型bean
- assembly打包插件引发的自定义spring标签找不到声明的错误