- 博客(6)
- 收藏
- 关注
原创 JVM基础
JVM进行垃圾回收时,会先找到“非垃圾”对象,也就是还在使用的对象。找到非垃圾对象就需要从某些“根”去找,这些根就是gc root。gc root有一个特征,即。
2024-05-02 01:11:31 34 2
原创 ThreadLocal小结
在使用强引用时,会同时导致ThreadLocal与value泄漏,因为在业务代码中,ThreadLocalRef一旦不再使用,ThreadLocal也不会被回收,并且此时value也无法在业务代码中进行访问。而使用弱引用,只会存在value泄漏的情况。ThreadLocal的调用结束了,线程不一定会结束,CurrentThreadRef->CurrentThread->ThreadLocalMap->Key->ThreadLocal的引用会一直存在,导致ThreadLocal只能在线程结束时被回收。
2024-05-01 22:39:31 425
原创 HashMap的put方法
HashMap的put方法的流程1.key通过哈希+与运算得出数组下标2.如果数组下标位置元素为空,则将key和value封装并放入该位置a.jdk1.7,是entity对象b.jdk1.8,是node对象3.如果数组下标位置元素不为空,则要分情况讨论a.jdk1.7,先判断是否需要扩容,如果不用扩容就生成entity对象,用头插法插入当前位置链表b.jdk1.8,先判断当前位置上的node类型,是红黑树还是链表i.如果是红黑树,则将key和value封装为一个红黑树节点添加到红黑树中,在搜
2024-04-23 16:49:55 63
原创 MyBatis分页
RowBounds中传入的limit分页参数,是在sql执行完后,把所有数据加载到内存中,然后再进行的逻辑分页,并不是sql执行前将limit拼接到where条件后面。
2024-04-23 16:18:21 103
原创 ArrayList和LinkedList对比
ArrayList基于数组,而LinkedList基于链表。由于基于的底层数据不同,所以使用场景不同。ArrayList有数组特性,所以适合随机访问;LinkedList有链表特性,所以适合增加、删除元素。ArrayList源码中就是用Object[ ]来存储数据。可以看到LinkedList通过index访问元素需要遍历。ArrayList和LinkedList都实现了List的接口,但LinkedList实现了Deque接口,可以当做双端队列使用。
2024-04-23 14:38:00 124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人