JDK源码
生死无尘
这个作者很懒,什么都没留下…
展开
-
记录一次神奇的内存泄露
今天在维护代码时,在一台长时间没用的服务器上,运行了测试的程序,发现程序运行了一段时间,就报出了内存泄露(如下图),然后导致整个项目停止运行。由于改动的比较多,排查比较困难。刚开始以为是它报的ScheduledThreadPoolExecutor相关,因为刚好也改动了这个定时器的线程池相关的配置。然后排查了所有和线程池相关的部位,发现不管是回滚还是修改,都还是会爆出相同的内存泄露的问题。而后又排查了锁相关的部位,有没有可能有死锁的操作,同样的回滚和修改,都不能解决。把日志级别改成DEBUG,还是没有任原创 2020-08-18 18:32:16 · 355 阅读 · 1 评论 -
初尝HashMap源码
写在最前一晃眼,参加工作也已经快两年的时间了,之前也尝试过读过JDK的源码,但是都不是系统性的,而且,读过却没有记录,转眼就忘了,于是今天尝试将部分重要的JDK的源码再理解一遍,并且记录一下吧。目录写在最前基础环境一、整体概述1.0 基础概念(挺重要,能帮助理解结构)1.1、影响性能的因素1.2 相关默认值1.2.1 未指定的初始容量(16)1.2.2 最大容量(2的30次方)1.2.3 默认的扩容阈值(0.75)1.2.4 树形化阈值(8)1.2.5 链表还原阀值(6)1.2.6 最小树形化容量阈原创 2020-07-14 21:21:30 · 523 阅读 · 0 评论