
java
いno Perfect☆
这个作者很懒,什么都没留下…
展开
-
JDK1.8 对HashMap除了红黑树还进行了哪些改动
JDK1.8 改进了扩容时的元素迁移机制。在扩容过程中不再对每个元素重新计算哈希值,而是根据原数组长度的高位来判断元素是留在原位置,还是迁移到新数组中的新位置。这一改动减少了不必要的计算,提升了扩容效率。:JDK1.8 中优化了哈希函数,使得哈希值的分布更加均匀,减少了哈希冲突的发生。通过在生成哈希值时使用“扰动函数”,确保哈希值的高低位都能参与到桶的选择中。:头插法的好处就是插入的时候不需要遍历链表,直接替换成头结点,但是缺点是扩容的时候会逆序,而逆序在多。原创 2025-05-03 18:07:19 · 148 阅读 · 0 评论 -
Java中ConcurrentHashMap 1.7和1.8有什么区别
原理:当塞入一个值的时候,先计算 key 的 hash 后的下标,如果计算到的下标还未有 Node,那么就通过 cas 塞入新的Node。由此图可知 他是将锁直接加载node数组的节点头里面,并且1.8使用的synchronized关键字而没有使用ReentrantLock,这也侧面证明 synchronized经过优化后的速度已经不下于ReentrantLock了。里面的HashEntry的下标,后面的操作就跟hashMap的原理一致了,也就是说引入了一个Segement。,因此它自身具有加锁的功能。原创 2025-05-03 18:00:33 · 273 阅读 · 0 评论 -
springboot集成三方登录(微信)
在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者账号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。2、点击微信登录会弹出一个二维码 通过微信扫一扫进行登录 登录完成后他会通过你写的redirect_uri(回调地址) 调转到相应的页面上并会返回一个code值以及state值(地址栏中)4、再根据所得到的token以及openId 通过一下链接 能够获取到对应的微信用户信息 并转换成Java的对象。原创 2024-03-07 22:28:10 · 1270 阅读 · 0 评论 -
SpringBoot对接企业微信群机器人
第三步:创建springboot项目 并导入对应的依赖。微信群必须是内部群 外部群添加不了群机器人。第六步:编写controller(发送请求)第五步 配置url的地址 并发送消息。第二步: 获取到机器人的key值。可以根据自己的需求进行更改。第四步:配置yml文件。第七步:发送具体的消息。第一步:添加群机器人。原创 2024-02-23 18:43:34 · 1301 阅读 · 0 评论