青铜爱码士
码龄6年
关注
提问 私信
  • 博客:82,873
    动态:98
    82,971
    总访问量
  • 156
    原创
  • 250,640
    排名
  • 69
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2018-07-23
博客简介:

weixin_42774617的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    633
    当月
    2
个人成就
  • 获得169次点赞
  • 内容获得14次评论
  • 获得277次收藏
  • 代码片获得1,420次分享
创作历程
  • 5篇
    2024年
  • 80篇
    2023年
  • 45篇
    2022年
  • 10篇
    2020年
  • 17篇
    2019年
成就勋章
TA的专栏
  • 运维
    4篇
  • 前端
    1篇
  • angular
    1篇
  • angulat
  • git
    1篇
  • linux
    4篇
  • 云服务
    1篇
  • groovy
    2篇
  • android
    9篇
  • java
    62篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

MyBatis学习总结

我们整理一下这个类切换数据源的运作方式,这个类在连接数据库之前会执行determineCurrentLookupKey()方法,这个方法返回的数据将作为key去targetDataSources中查找相应的值,如果查找到相对应的DataSource,那么就使用此DataSource获取数据库连接它是一个abstract类,所以我们使用的话,推荐的方式是创建一个类来继承它并且实现它的determineCurrentLookupKey() 方法,这个方法介绍上面也进行了说明,就是通过这个方法进行数据源的切换。
原创
发布博客 2024.02.20 ·
1028 阅读 ·
21 点赞 ·
0 评论 ·
15 收藏

Java实现线程安全的几种方式:常量/数据私有/互斥同步/非阻塞同步

java提供锁机制控制多线程对共享资源的访问,只允许获取锁的线程执行。先进行操作,如果没有其它线程争用共享数据,那操作就成功。数据声明成常量,使数据无法被修改,则一定线程安全。将数据变成线程私有的数据。
原创
发布博客 2024.02.05 ·
601 阅读 ·
7 点赞 ·
0 评论 ·
9 收藏

redis的缓存击穿和缓存雪崩和缓存穿透问题解决方法

缓存的key大量集中同时过期了或者缓存服务器挂掉,所有的请求全部冲到持久层数据库上,导致持久层数据库挂掉,导致整个应用都不可用。热点的key,在不停的扛着大并发,当这个key失效时,一瞬间大量的请求冲到持久层的数据库中,就像在一堵墙上某个点凿开了一个洞!1.数据预热:数据加热的含义就是在正式部署之前,我先把可能的数据先预先访问一遍,这样部分可能大量访问的数据就会加载到缓存中。3.布隆过滤器:实现黑名单或者白名单,黑名单:数据库不存在的数据放到过滤器,白名单:数据库存在的数据放到过滤器。
原创
发布博客 2024.02.04 ·
611 阅读 ·
7 点赞 ·
0 评论 ·
8 收藏

HashMap学习和线程安全的HashMap

索引的计算方式(n - 1) & hash,当扩容后,容量是之前的两倍,新的n-1比老的n-1的最高位多了一个1,因此计算新的索引位置时,只取决于高位多出来的这一位,而这一位的值刚好等于oldCap( 两者相减,值是oldCap,2的N次方)。计算索引位置的公式为:(n - 1) & hash,当n的值是2的N次方,n - 1 为低位全是 1 ,此时任何值跟 n - 1 进行 & 运算的结果为该值的低 N 位,达到了和取模同样的效果,实现了均匀分布。防止节点数在8附近,导致频繁的转换,影响性能。
原创
发布博客 2024.01.17 ·
527 阅读 ·
8 点赞 ·
0 评论 ·
10 收藏

cookie和session的工作过程和作用:弥补http无状态的不足

cookie是客户端浏览器保存服务端数据的一种机制。当通过浏览器去访问服务端时,服务端可以把状态数据以key-value的形式写入到cookie中,存储到浏览器。session表示一个会话,是一个容器对象,是服务端的保存客户端数据的一种机制。因为http是无状态的通信协议,服务器端无法知道客户端发送过来的多次http请求是不是属于同一个用户,session用来弥补http无状态的一个不足。因此,基于客户端的cookie和服务端的session机制实现有状态的http协议。
原创
发布博客 2024.01.16 ·
655 阅读 ·
10 点赞 ·
0 评论 ·
12 收藏

LeetCode算法练习top100:(10)贪心算法

【代码】LeetCode算法练习top100:(10)贪心算法。
原创
发布博客 2023.12.18 ·
337 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode算法练习top100:(9)栈和堆

【代码】LeetCode算法练习top100:(9)栈和堆。
原创
发布博客 2023.12.17 ·
155 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode算法练习:双指针计算三数之和和四数之和

通过双指针将时间复杂度降一个级别。
原创
发布博客 2023.12.12 ·
221 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用Guava做本地缓存示例

通过CacheBuilder类构建一个缓存对象,CacheBuilder类采用builder设计模式,它的每个方法都返回CacheBuilder本身,直到build方法被调用。本地缓存为了保证线程安全问题,一般使用ConcurrentMap的方式保存在内存之中,而常见的分布式缓存则有Redis,MongoDB等。本地缓存适用于数据量较小或变动较少的数据,因为变动多需要考虑到不同实例的缓存一致性问题,而数据量大则需要考虑缓存回收策略及GC相关的问题。softValues():使用软引用存储值。
原创
发布博客 2023.12.10 ·
402 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

LeetCode算法练习top100:(8)二分法

【代码】LeetCode算法练习top100:(8)二分法。
原创
发布博客 2023.12.09 ·
80 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

SpringBoot面试题:(一)SpringBoot自动装配原理源码解析

这样,springboot框架就可以读入到所有的配置类信息,在执行run方法时,解析上面的注解,将AutoConfigurationImportSelector加载进方法区,通过反射创建对象,调用其某一个方法,从缓存读取前面存储的k-v,并经过一系列的过滤、去重等,最后将需要的配置类加载,生成BD对象,创建Bean对象,放入spring容器。自动装配:自动装配就是把别人(官方)写好的config配置类加载到spring容器,然后根据这个配置类生成一些项目需要的bean对象。可以看到主要是三个注解构成。
原创
发布博客 2023.12.05 ·
190 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

LeetCode算法练习top100:(7)递归回溯

【代码】LeetCode算法练习top100:(7)递归回溯。
原创
发布博客 2023.12.04 ·
167 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

LeetCode算法练习top100:(6)图论

【代码】LeetCode算法练习top100:(6)图论。
原创
发布博客 2023.12.04 ·
404 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode算法练习top100:(5)二叉树

【代码】LeetCode算法练习top100:(5)二叉树。
原创
发布博客 2023.11.20 ·
314 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

Spring面试题:(八)Spring事务

Spring事务基于数据库,基于数据库的事务封装了统一的接口。编程式事务和声明式事务。声明式事务分为Xml声明式或者注解声明式。
原创
发布博客 2023.11.18 ·
108 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

LeetCode算法练习top100:(4)链表

【代码】LeetCode算法练习top100:(4)链表。
原创
发布博客 2023.11.15 ·
216 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

LeetCode算法练习top100:(3)矩阵

【代码】LeetCode算法练习top100:(3)矩阵。
原创
发布博客 2023.11.15 ·
341 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Spring面试题:(七)Spring AOP思想及实现

在spring框架提供的bean扩展点的bean后置处理器中的后置方法和aware接口,获取容器对象获取增强对象,对bean进行动态代理,在bean目标前后执行增强方法,返回代理对象。通过spring容器获取目标对象和增强对象,通过动态代理生产代理对象,在目标对象的目标方法执行增强方法,返回生成代理对象给spring容器,在获取bean时则获取代理对象。JDK相当于生成了一个兄弟类,实现相同的接口,Cglib则生产一个子类。注解的方式使用AOP。
原创
发布博客 2023.11.14 ·
296 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

LeetCode算法练习top100:(2)子串,普通数组

【代码】LeetCode算法练习top100:(1)子串,普通数组。
原创
发布博客 2023.11.13 ·
170 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring面试题:(六)Spring注解开发原理

调用BeanDefinitionRegistryPostProcessor,再调用ClassPathDefinitionScanner的doScan方法。注册bean的接口:BeanDefinitionRegistryPostProcessor。发现只要将bean注册到BeanDefinitionMap中就可以创建bean对象。如何将xml配置的bean注册到BeanDefinitionMap。通过注解注册的bean过程一样。
原创
发布博客 2023.11.12 ·
148 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏
加载更多