首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
大白a
掘友等级
产品经理
气磊的时候打个气,变强
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
128
文章 127
沸点 1
赞
128
返回
|
搜索文章
赞
文章( 127 )
沸点( 1 )
ReentrantLock源码解析
查看它的构造函数,默认是实现非公平锁。 如果为true就是公平锁,false是非公平锁. 可以看到一个抽象类Sync,抽象类一般都是有具体实现的,所以我们可以知道lock的具体实现就在Sync类当中。 在Sync的lock()方法可以知道Sync有二个子类,FairSync和N…
mybatis源码系列(1) -- 配置文件的解析
MyBatis有一个核心的配置文件,configuration.xml,这里面配置很多核心的信息,但是我并不会每一个配置都讲,这里主要是将我们再编写 xml文件中编写sql语句,以及如何执行sql并返回结果,其它的以后有时间再来写相关的文章。这里我从MyBatis官网截了张图 …
MyBatis--sql执行过程(${}和#{}源码解析)
调用的方法与配置的sql语句。 在之前我们知道我们在配置文件写的sql语句最后是被解析成一个个的SqlNode,然后将一个个的SqlNode存储到SqlSourse对象中去。不清楚的可以看下我之前的文章。在我主页里面有关于解析MyBatis源码的文章。废话不多说了。继续上次的文…
JDK1.7HashMap环链的形成原理(附图)
HashMap在1.8相对1.7做了很多改进,比如红黑树,还有今天要说的环链的形成,之前看别人博客只是说到了1.7版本HashMap在扩容的时候会形成环链,但是没有说到具体原因。 这是jdk1.7中HashMap扩容的源代码,我们的分析也是从这开始的。HashMap是线程不安全…
jdk1.8HashMap解决环链
先看看resize()方法前面一部分的,主要是对扩容后的HashMap的各种变量进行赋值,而且可以看待新的Map的长度是之前的2倍。前提是小于最大的长度限制。 整个方法太长我就截了2张图。这里首先设置了4个空的节点 loHead,loTail,hiHead,hiTail。首先会…
并发编程JUC-CountDownLatch源码解析
为了做下测试,我使用了上面这个例子,虽然没有用到线程但是原理还是一样,CountDownLatch的原理和适用场景大家应该都知道,就是主线程等其它线程都完成之后再继续执行。废话不多说,看源码。先从构造函数开始 如果传进的数值小于0,抛出异常。这里有个Sync对象,点进去看下是什…
SpringMvc-HandleMapping的初始化源码分析
关于SpringMvc的执行流程源码分析大家可以在掘金上找到相关的文章,这里我也就不再重复了。因为之前我也看过,但是其中一个点一直困扰着我,就是SpringMvc在处理请求的时候有一步是从HandleMapping中获取相对应的Handle。这时候问题来了,这个HandleMa…
并发编程JUC--Semaphore源码解析
关于Semaphore的使用可以自行百度。 到这里我们发现Semaphore底层还是使用了AQS来实现的。构造函数就是将我们设置的值赋给state这个变量 第三步:1:假如减完后的值 <0,那么只有一种可能,许可证被枪光了 。 2:如果不小于0,那么就利用CAS设置新的值,最后…
SpringMvc执行流程源码解析
这行代码的作用是执行springMvc的拦截器链的前置方法,如果前置方法返回fasle,那么取反就是true,那么直接return。至于这个拦截器链怎么得到的我在下一篇文章说明 这个方法的原理就是首先获取方法参数,然后遍历参数看是否有@RequestBody注解,接着获取HTT…
TCP三次握手详解
在使用TCP进行服务端与客户端进行通信连接时,需要进行3次 "握手",3次"握手" 也是学习Socket的必备知识,当然也是在很多面试中会问到的。今天我只做个文章的搬运工,以下所有内容都是出自<NIO与Socket编程指南>一书中。客户端与服务端代码如下图 在"第一次握手"的过…
下一页
关注了
1
关注者
1
收藏集
0
关注标签
0
加入于
2021-10-22