自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 JDK8中HashMap的put方法的实现过程?

如果tab[i]的类型不是TreeNode,则表示数组的第i位置上是一个链表,那么遍历链表寻找是否存在相同的key,并且在遍历的过程中会对链表中的结点数进行计数,当遍历到最后一个结点时,会将key,value封装为Node插入到链表的尾部,同时判断在插入新结点之前的链表结点个数是不是大于等于8,如果是,则将链表改为红黑树。如果tab[i]的类型是TreeNode,则表示数组的第i位置上是一颗红黑树,那么将key和value插入到红黑树中,并且在插入之前会判断在红黑树中是否存在相同的key。

2022-10-26 11:33:59 98 1

原创 Nacos注册中心

就是像/nacos/v1/ns/instance【资源路径+基准路径】中去发送一个POST请求方式的Http请求,且携带一个Map类型的入参【封装了例如实例的ip 端口、namespceid group serviceNmae healthy emapha..】九个。一句话这个后台这个任务在容器一启动的时候,就会执行到这个任务的run方法,而在run中来实现真正的注册。注册的本质就是想Nacos-server发送一个远程的Http请求。内层Map的Value:类型是Service:存放的是Service。

2022-10-12 14:10:17 402

原创 JDK8中的ConcurrentHashMap是怎么保证并发安全的?

addCount,这个方法的意思是ConcurrentHashMap的元素个数加1,但是这个操作也是需要并发安全的,并且元素个数加1成功后,会继续判断是否要进行扩容,如果需要,则会进行扩容,所以这个方法很重要。synchronized主要负责在需要操作某个位置时进行加锁(该位置不为空),比如向某个位置的链表进行插入结点,向某个位置的红黑树插入结点。JDK8中其实仍然有分段锁的思想,只不过JDK7中段数是可以控制的,而JDK8中是数组的每一个位置都有一把锁。加锁成功之后,在判断该元素的类型。

2022-10-09 18:55:01 331

原创 SrpingAop的原理

先去获取所有的Advisor===Object[] specificInterceptors = getAdvicesAndAdvisorsForBean(bean.getClass(), beanName, null);5.1.2.1 先去容器中找打所有Adviosr类型的BeanName,然后跟进BeanName生成Advisor类型的Bean对象,放到容器中去。5.1.2.3 解析得到是Aspect类中的方法以及方法上的注解。5.2.5.3 将不满足Advisor类型的方法过滤掉。

2022-10-08 10:08:57 131 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除