![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码剖析
文章平均质量分 92
小熊学Java
2年互联网金融方面的工作经验,CSDN Java领域优质创作者,阿里云社区博客专家,51CTO博客专家博主,担任过项目技术负责人,目前专攻于Java领域,也是全栈工程师哦!
展开
-
Synchronized 和 ReentrantLock 的实现原理是什么?它们有什么区别?
今天讲了 synchronized 和 ReentrantLock 的实现过程,然后讲了 synchronized 和 ReentrantLock 的区别,最后通过源码的方式讲了 ReentrantLock 加锁和解锁的执行流程。接着又讲了 JDK 1.6 中的锁优化,包括自适应式自旋锁的实现过程,以及 synchronized 的三种锁状态和锁升级的执行流程。synchronized 刚开始为偏向锁,随着锁竞争越来越激烈,会升级为轻量级锁和重量级锁。如果大多数锁被不同的线程所争抢就不建议使用偏向锁了。原创 2024-01-16 21:58:20 · 995 阅读 · 0 评论 -
详解 ThreadPoolExecutor 的参数含义及源码执行流程?
new RejectedExecutionHandler() { // 添加自定义拒绝策略@Override// 业务处理方法System.out.println("执行自定义拒绝策略");});i < 6;i++) {});执行自定义拒绝策略可以看出线程池执行了自定义的拒绝策略,我们可以在 rejectedExecution 中添加自己业务处理的代码。原创 2024-01-10 13:21:04 · 1090 阅读 · 0 评论 -
如何手写一个消息队列和延迟消息队列?
我们可使用 Queue 来实现消息队列,Queue 大体可分为以下三类:**双端队列(Deque)**是 Queue 的子类也是 Queue 的补充类,头部和尾部都支持元素插入和获取;阻塞队列指的是在元素操作时(添加或删除),如果没有成功,会阻塞等待执行,比如当添加元素时,如果队列元素已满,队列则会阻塞等待直到有空位时再插入;非阻塞队列,和阻塞队列相反,它会直接返回操作的结果,而非阻塞等待操作,双端队列也属于非阻塞队列。原创 2023-12-27 10:58:31 · 497 阅读 · 0 评论 -
String 的特点是什么?它有哪些重要的方法?
我们从 String 的源码入手,重点讲了 String 的构造方法、equals() 方法和 compareTo() 方法,其中 equals() 重写了 Object 的 equals() 方法,把引用对比改成了字符串值对比,也介绍了 final 修饰 String 的好处,可以提高效率和增强安全性,同时我们还介绍了 String 和 JVM 的一些执行细节。。原创 2023-12-25 23:55:22 · 1066 阅读 · 0 评论