• 代码运行出现了堆栈溢出错误及解决方法


     出现了堆栈溢出错误

    “Exception in thread "main" java.lang.StackOverflowError

    出现原因:

    在创建对象时出现循环依赖,在IndexView中创建对象:

    JobView jv =  new JobView;
    IndexView iv = new IndexView;

    在JobView中创建对象:

    private JobService js = new JobService;

    在JobService中创建对象:

    IndexView iv= new IndexView;

    形成了一个完整的闭环,不停地循环,超出了堆栈空间,造成了溢出。

    解决方法:

    创建了一个对象池模式(Object Pool Pattern),是创建型设计模式的一种,将对象预先创建并初始化后放入对象池中,对象提供者就能利用已有的对象来处理请求,减少频繁创建对象所占用的内存空间和初始化时间。

    1. package Project.campusparttimejob3;
    2. import Project.campusparttimejob3.service.JobService;
    3. import Project.campusparttimejob3.service.UserService;
    4. import Project.campusparttimejob3.view.IndexView;
    5. import Project.campusparttimejob3.view.JobView;
    6. import Project.campusparttimejob3.view.LoginView;
    7. import Project.campusparttimejob3.view.NameView;
    8. import Project.team.service.LoginService;
    9. public class ObjectPool {
    10. /**** 视图对象 **/
    11. public static IndexView INDEX_VIEW = new IndexView();
    12. public static JobView JOB_VIEW = new JobView();
    13. public static LoginView LOGIN_VIEW = new LoginView();
    14. public static NameView NAME_VIEW = new NameView();
    15. /** 服务对象 */
    16. public static JobService JOB_SERVICE = new JobService();
    17. public static LoginService LOGIN_SERVICE = new LoginService();
    18. public static UserService USER_SERVICE = new UserService();
    19. }

     使用时直接从对象池中调用即可,这样就不会出现堆栈溢出的错误啦!

     
    

  • 相关阅读:
    Python动态建模(2)
    un7.29:Linux——centos中如何安装与配置redis?
    静态博客搭建工具汇总
    Jira 笔记
    数据库生产架构( 一 ) 主从复制架构
    安卓app客户端测试---Drozer使用
    ChatGPT企业版来了,速度翻倍,无使用限制
    Maven
    24东北大学计算机计划招生数据
    flink.sql.parser.impl.ParseException
  • 原文地址:https://blog.csdn.net/clover_oreo/article/details/126459051