自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 326 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 201 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 270 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 1067

原创 举足轻重的BeanDefinition

读懂Spring的必经之路—BeanDefinition最近有人问我:我想学习spring源码,可是源码量那么大,我应该从哪里开始学?有没有哪个切入点啊,应该从哪里开始看啊?我想了想,决定写一篇博客,说说自己个人的看法,希望能对想学spring源码但又不知道从何开始的人有点帮助。从那开始看?对于异常庞大的Spring源码,可能很多人在一开始就望而生畏,不知道应该怎么去阅读,从哪开始阅读。如果我们将Spring比喻成一个奶茶店,一个个的bean比喻成一杯杯的奶茶。那在我们要做一杯奶茶之前,我们最应该知

2020-11-03 22:21:25 192

原创 你所不知道的——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 1550 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 3457

原创 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 1883 1

原创 浅谈MySQL索引及其数据结构

写在前面的话本人只是一个普通的大三学生,对于MySQL接触其实也不久,也不深,如果有讲错的地方请大家私我或者评论告诉我哪里错了,我一定会及时改正,我也不想别人看了我的文章对MySQL有错误的理解,谢谢。为什么突然想写这篇文章,因为我在看了很多博客跟视频之后,发现有一些博客的内容是存在歧义的,或是写得比较难以理解的,所以我想写一篇通俗易懂的,让每个人都能学会!为什么要学这是我在一个面试视频中听到的对话# 节选面试官:你说你熟悉MySQL,那你能跟我说说你一般会怎么优化吗求职者:我一般都是添加索引

2020-05-15 13:50:53 263

原创 简单解析MyBatis配置文件

mybatis为什么这么写?当我们在写mybatis配置文件的时候,可能会遇到这样的问题The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFa...

2020-05-06 20:40:35 120

原创 XML文件是怎么被读取的

XML文件是怎么被读取的我们在使用mybatis等一下框架的时候,都需要配置xml文件,但是对于这些文件中的内容是怎么被读取的,肯定还有很多小伙伴也是一脸懵逼,今天我将简单探索一下XML文件到底是怎么被读取的!XML常见的三种解析方式DOM解析方式SAX解析方式StAX解析方式(JDK6.0版本才有)对于这些解析方式不是我们本次讨论的重点,只是作为引入,大家可以自行下去了解。XP...

2020-05-03 15:08:57 1240 1

原创 git文件上传超过100M解决方案

error: File: xxx 102.15 MB, exceeds 100.00 MB.有一次我写好项目想将项目上传到gitee上的时候,出现了这个错误。其实就是其中有一个文件太大,超过了100M导致的。网上看了很多帖子,踩了很多坑弄了一下午都没有解决,最后还是直接求助官网解决了。贴出来避免其他人也犯了类似的错误解决方案1. 查看哪个文件超过了100M有可能错误直接爆出是哪个文件,也...

2020-05-02 15:30:07 3526 3

原创 Java自制分页工具类

为什么不使用现有的分页插件现在的分页工具非常的多,例如mybatis的pageHelper就是一款十分强大的工具。这里顺便记录一个以前踩过的坑,pageHleper只能分页在**PageHelper.startPage(pageNum,pageSize);**下的第一个第一个select语句!(有一次我想分页redis中读出的list一只分页不成功,弄了大半天看官网才发现这个分页工具只能分页第一...

2020-05-02 15:02:06 321

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除