- 博客(13)
- 收藏
- 关注
原创 ReentrantLock中公平锁实现的源码解析(超多动图一看就会)
ReentrantLock 首先我们先尝试使用ReentrantLock(下面简称RLock)来感受一下RLock的强大。之后再对其源码进行详细解读 我们首先尝试创建两个线程来调用同一个方法,通过是否使用RLock来体验一下RLock的作用不使用RLcok的情况 public static void main(String[] args) { // 我们首先创建两个线程,并且让他们同时调用 doPrint() 方法 Thread t1 = new Thread(
2021-05-22 14:53:13
402
1
原创 实现JDK动态代理
静态代理和动态代理实现静态代理我们首先实现一个静态代理之后再进行分析。创建一个接口Animalpublic interface Animal { // 用来定义动物的行为 void action();}实现一个Cat类并继承Animal接口public class Cat implements Animal { @Override public void action() { System.out.println("猫会叫..."); }}创建一个代理类
2021-04-14 17:21:37
266
1
原创 编辑内核模块并动态加载
编写内核模块首先先编写一个最简单的linux内核模块,因为linux是用C语言编写的,所以我们先写一个简单的C语言的内核模块的例子#include <linux/init.h>#include <linux/module.h>static int my_test_init(void){ printk("Hello, world, my first kernel module\n"); return 0;}static void my_
2021-03-24 22:12:41
337
1
原创 实现和解析Spring中的扫描器
Spring的扫描机制在讲Spring的扫描机制之前,先对java的一些基础知识做一个简单的回顾------ java.io.File。可能在之前我们使用File的时候都是 new File(“文件路径…”); 今天我们先来说说另外一种用法 File(“包路径”);File的用法首先在任意位置创建几个空文件代码:File file = new File("G:/1/");for (String s : Objects.requireNonNull(file.list())) { Syst
2020-11-10 12:56:23
1153
原创 举足轻重的BeanDefinition
读懂Spring的必经之路—BeanDefinition最近有人问我:我想学习spring源码,可是源码量那么大,我应该从哪里开始学?有没有哪个切入点啊,应该从哪里开始看啊?我想了想,决定写一篇博客,说说自己个人的看法,希望能对想学spring源码但又不知道从何开始的人有点帮助。从那开始看?对于异常庞大的Spring源码,可能很多人在一开始就望而生畏,不知道应该怎么去阅读,从哪开始阅读。如果我们将Spring比喻成一个奶茶店,一个个的bean比喻成一杯杯的奶茶。那在我们要做一杯奶茶之前,我们最应该知
2020-11-03 22:21:25
227
原创 你所不知道的——Spring自动注入
自动注入和@Autowire注入方式(重要)在Spring官网上(文档),定义了在Spring的注入方式一共有两种set方法和构造函数。也就是说,你想在A类里面注入另外一个B类,无论你是通过写 XML,或者通过 @Autowrie,他们最终都是通过这个A类的set方法或者构造函数,将B类注入到A类中!换句话说,你如果A类里面没有setB(B b){…},那你就别想通过set方法把B类注入到A类中自动注入首先摆出一个比较颠覆的观点:@Autowire不属于自动注入!如果要讨论自动注入,我们先要理解
2020-10-16 21:29:09
1723
7
原创 npm instal下载超时解决办法
最近搭项目,npm install搞了很久写一下心得解决办法改用国内镜像如果想临时使用国内镜像npm install node-sass --registry=http://registry.npm.taobao.org如果想永久改成国内镜像npm config set registry https://registry.npm.taobao.org如果想要查询当前使用的npm配置npm config list可以查询当前是否已经修改了镜像源但是有时候使用国内镜像还是会出现下载超时
2020-06-06 10:38:41
3667
原创 ERROR: the system property [es.path.conf] must be set
ERROR: the system property [es.path.conf] must be setelasticsearch.bat 可以启动,但是 elasticsearch-service.bat 无法启动,启动报错ERROR: the system property [es.path.conf] must be set在网上搜了很多办法都没用,最后锁定 JDK 版本出问题。我的 ElasticSearch 版本为7.7.0, JDK 版本为 1.8对于不想修改系统 JDK 版本的可以使
2020-06-04 11:39:29
1961
1
原创 浅谈MySQL索引及其数据结构
写在前面的话本人只是一个普通的大三学生,对于MySQL接触其实也不久,也不深,如果有讲错的地方请大家私我或者评论告诉我哪里错了,我一定会及时改正,我也不想别人看了我的文章对MySQL有错误的理解,谢谢。为什么突然想写这篇文章,因为我在看了很多博客跟视频之后,发现有一些博客的内容是存在歧义的,或是写得比较难以理解的,所以我想写一篇通俗易懂的,让每个人都能学会!为什么要学这是我在一个面试视频中听到的对话# 节选面试官:你说你熟悉MySQL,那你能跟我说说你一般会怎么优化吗求职者:我一般都是添加索引
2020-05-15 13:50:53
313
原创 简单解析MyBatis配置文件
mybatis为什么这么写?当我们在写mybatis配置文件的时候,可能会遇到这样的问题The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFa...
2020-05-06 20:40:35
142
原创 XML文件是怎么被读取的
XML文件是怎么被读取的我们在使用mybatis等一下框架的时候,都需要配置xml文件,但是对于这些文件中的内容是怎么被读取的,肯定还有很多小伙伴也是一脸懵逼,今天我将简单探索一下XML文件到底是怎么被读取的!XML常见的三种解析方式DOM解析方式SAX解析方式StAX解析方式(JDK6.0版本才有)对于这些解析方式不是我们本次讨论的重点,只是作为引入,大家可以自行下去了解。XP...
2020-05-03 15:08:57
1299
1
原创 git文件上传超过100M解决方案
error: File: xxx 102.15 MB, exceeds 100.00 MB.有一次我写好项目想将项目上传到gitee上的时候,出现了这个错误。其实就是其中有一个文件太大,超过了100M导致的。网上看了很多帖子,踩了很多坑弄了一下午都没有解决,最后还是直接求助官网解决了。贴出来避免其他人也犯了类似的错误解决方案1. 查看哪个文件超过了100M有可能错误直接爆出是哪个文件,也...
2020-05-02 15:30:07
3875
3
原创 Java自制分页工具类
为什么不使用现有的分页插件现在的分页工具非常的多,例如mybatis的pageHelper就是一款十分强大的工具。这里顺便记录一个以前踩过的坑,pageHleper只能分页在**PageHelper.startPage(pageNum,pageSize);**下的第一个第一个select语句!(有一次我想分页redis中读出的list一只分页不成功,弄了大半天看官网才发现这个分页工具只能分页第一...
2020-05-02 15:02:06
354
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人