java.lang.StackOverflowError 问题的排查和解决方案

原因分析:

开发过程中,遇到了栈溢出这个问题,一般来说可以从下面几个方面进行排查

1、首先查看报错的地方是否存在无限制的递归或者死循环的代码逻辑,一般来说都是这个原因导致的。

2、注意多线程的并发数量,因为每个线程都会申请独立的栈空间。不加以控制的话可能上百条线程一起把JVM限定的栈空间给消耗完。

3、layout布局嵌套太深,也有可能导致栈溢出这个问题。

对应解决方案

1、一定要对递归和死循环中添加 调用次数限制,比如说 ,等调用次数大于10次就终止递归或者循环。

2、尽量不要使用 new Thread() 来开启线程,尤其是在一些循环中,尽量使用ThreadPoolExecutor线程池来生成线程。

3、Layout布局尽量控制到5层以下,尽量使用ConstaintLayout,Relativelayout等布局,include 、merge等标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值