![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Professor麦
Oreo奥利奥团队
奥利奥团队知识代码库
展开
-
[Professor麦]并发编程就该这么学(长文预警)
二轮复盘并发编程!!文末有一些我学习并发编程的感受,不知道怎么入手的可以看看,正所谓传道授业解惑也,传递怎么学比知识更重要!欢迎在评论区和我交流讨论什么是线程安全当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的。线程安全,是编程中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。.转载 2020-08-06 11:17:44 · 236 阅读 · 0 评论 -
[Professor麦]总结Spring的设计模式
哈哈哈,今天又水一篇文章了,主要是最近再刷算法和基础,一时半会文章未能写完总结Spring框架用到的设计模式适配器模式在 Spring 中的应用适配器其中一个作用是“统一多个类的接口设计”如果不了解Spring-MVC的可以先看看这个图不了解的可以先看这篇博客我们看到上面那个HandlerAdapter,通过HandlerAdapter拿到不同的Hander然后调用不同的Hander来执行不同的handle逻辑从而返回结果给前端(前后端分离的情况是不用解析视图的)那这个要怎么实现呢?//.转载 2020-07-27 21:04:52 · 93 阅读 · 0 评论 -
[Professor麦]总结Mybatis的设计模式
今天特意来了一篇设计模式的实战,跟着源码真正了解设计模式,因为我第一次学习设计模式的时候,都是只知道每一个具体的设计模式的意思,并没有了解到一些框架优秀的设计模式!今天特意写一下这个总结Mybatis框架用到的设计模式SqlSessionFactoryBuilder:为什么要用建造者模式来创建SqlSessionFactory?简单谈谈建造者模式这里主要说说为什么需要建造者模式?建造者模式和工厂模式都是用来创建对象的。平常我们一般创建对象都是直接new,通过构造器或者setter把对象属性.转载 2020-07-27 21:01:49 · 89 阅读 · 0 评论 -
[Professor麦]浅谈Mybatis插件机制
哈哈哈,今天又拖更了!!Mybatis插件机制废话不多说,直接进入主题,这个Mybatis插件机制有点像Spring MVC的拦截器,底层的設計模式都是拦截器模式。插件机制原理我们在编写插件时,除了需要让插件类实现 Interceptor 接口,还需要通过注解标注该插件的拦截点。所谓拦截点指的是插件所能拦截的方法,MyBatis 所允许拦截的方法如下:Executor (update, query, flushStatements, commit, rollback, getTransact.转载 2020-07-27 21:00:58 · 88 阅读 · 0 评论 -
[Professor麦]浅谈Mybatis内置数据源
Mybatis内置数据源今天的文章稍微没有那么肝,但是还是拖到了晚上!!哈哈哈,其实昨天已经写好了,只不过一直想不到个人唠叨应该写什么,所以就拖了一下。内置数据源初始化过程在详细分析 UnpooledDataSource 和 PooledDataSource 两种数据源实现之前,我们先来了解一下数据源的配置与初始化过程。现在看数据源是如何配置的,如下:<!--使用连接池--><dataSource type="POOLED"> <!--这里会替换为loca转载 2020-07-19 11:09:02 · 175 阅读 · 0 评论 -
[Professor麦]剖析Mybatis的SQL执行过程
SQL 执行过程分析今天又来一点硬核的东西,我们一起来看看SQL的执行过程为 Mapper 接口创建代理对象先看看调用栈:// 本质:// MapperProxyFactorypublic T newInstance(SqlSession sqlSession) { /* * 创建 MapperProxy 对象,MapperProxy 实现了 * InvocationHandler 接口,代理逻辑封装在此类中 */ final MapperP转载 2020-07-19 11:07:58 · 157 阅读 · 0 评论 -
[Professor麦]深入剖析Mybatis缓存机制
哈哈哈,终于考完试了,用了大概两天时间肝了这篇文章!!!关于今天要讲的mybatis缓存机制,其实之前我已经有看过也用过,只不过平常不太留意,最近在看mybatis源码,就来讲一下这个缓存机制前言 本次分析的代码和数据表在gitee上,地址:https://gitee.com/professor_mai/mybatis_cache_demo 关于这个Mybatis缓存,推荐这篇文章 https://tech.meituan.com/2018/01/19/mybatis-cache.html,.转载 2020-07-19 11:06:55 · 124 阅读 · 0 评论 -
[Professor麦]一文了解设备管理
操作系统专栏第四篇,终于肝完了,这篇文章也只是个人笔记而已,仅供参考,因为对操作系统的理解还不是那么透彻,此资料仅限于本人用来期末考试,更多深入原理性的东西还有待挖掘!!请多多指教设备管理IO硬件原理IO设备,可以分为块设备和字符设备,块设备就是把信息存储在固定大小的块中,每个块有自己的地址(硬盘)。字符设备(不可寻址)就是以字符为单位,以字符为单位发送或接受一个字符流(打印机、鼠标)(通常我们c语言里的printf和scanf操作的都是字符流)IO设备一般分为机械和电子。电子部分称为设.转载 2020-07-12 16:27:54 · 214 阅读 · 0 评论 -
[Professor麦]一文了解文件系统
今天是周五,刚结束完答辩之后,就来完善一下这篇文章,嘻嘻,昨天因为跑去刷题了,所以就没有把文章更新出来,然后总结了一下,文件系统这一块其实我的理解也不是太深,这些笔记仅作参考!!文件系统https://mp.weixin.qq.com/s/jSG6qLcXWuJTvo1ROBLDtA 这里有一篇不错的文章文件是进程创建的信息逻辑单元,就是每个文件可以看成一个地址空间。操作系统中,处理文件的部分就是文件系统文件系统的Linux实践fdisk -l命令因为我只分了一个硬盘,所以就只有一.转载 2020-07-11 14:11:48 · 287 阅读 · 0 评论 -
[Professor麦]一文带你了解内存管理
这篇文章是本人的操作系统学习笔记系列二,接下来一周都会每天一更,欢迎阅读关注点赞!内存管理linux实践命令:free -m命令以MB为单位显示内存使用情况。total:总计物理内存的大小。used:已使用多大。free:可用有多少。Shared:多个进程共享的内存总额。Buffers/cached:磁盘缓存的大小。(buffer 是缓冲区,cache是页高速缓存。无论是缓冲区还是页高速缓存,它们的实现方式都是一样的。缓冲区只不过是一种概念上比较特殊的页高速缓存罢了)availabl.转载 2020-07-11 14:11:25 · 168 阅读 · 0 评论 -
[Professor麦]一文带你了解进程和线程
又到了复习周了,接下来这一周,我将用一系列我本人的的操作系统笔记带着你一起重新学习操作系统进程操作系统中最核心的一个概念:进程。其实,在某一瞬间,cpu只能运行一个进程,但在1秒钟内,他可能运行多个进程,这样就产生了并行的错觉,这种现象就是伪并行也就是多次切换进程,这种快速切换进程称作多道程序设计。进程控制块 (PCB)用于描述和控制进程的运行,是操作系统中最重要的记录型数据结构。 记录了操作系统所需要的、用于描述进程当前情况以及进程控制运行的全部信息。系统创建一个新进程时,会为它建.转载 2020-07-08 11:44:55 · 298 阅读 · 0 评论 -
[Professor麦]自研实现Spring-IOC
SpringIOC基础理论Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。"别找我们,我们找你”;即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。而依赖注入和依赖查询是实现IOC思想的其中的几种方式IOC的职责:松耦合、"别找我们,我们找你”依赖查询,一句话总结就是,主动去寻找相关的依赖类,用户是拉取依赖注入,由容器主动推送依赖查找是主动或手动的依赖查找方式,通常需要依赖容器或标准API 实现。而依赖注入则是手动或自动依赖绑定转载 2020-07-08 11:44:14 · 117 阅读 · 0 评论 -
[Professor麦]浅谈spring循环依赖
简单刨析spring的循环依赖什么是循环依赖 循环依赖:就是N个类循环(嵌套)引用。 通俗的讲就是N个Bean互相引用对方,最终形成闭环。用一副经典的图示可以表示成这样(A、B、C都代表对象,虚线代表引用关系):注意:其实可以N=1,也就是极限情况的循环依赖:自己依赖自己另需注意:这里指的循环引用不是方法之间的循环调用,而是对象的相互依赖关系。(方法之间循环调用若有出口也是能够正常work的)举一个通俗一点的场景:如果在日常开发中我们用new对象的方式,若构造函数之间发生这种循环依赖的话,程序转载 2020-06-30 13:28:21 · 128 阅读 · 0 评论 -
[Professor麦]Netty学习笔记(1)-谈谈netty的使用
前言本文是个人的一些笔记整理,粗略看了一遍netty源码之后,进行的二次总结,可能有不到位的地方,请多多见谅。Netty的简介Netty是 一个异步事件驱动的网络应用程序框架, 用于快速开发可维护的高性能协议服务器和客户端。(来自官网的简介)此处不再重复介绍netty,具体介绍请看官网https://netty.io/Netty的使用这里,我就用一个小小的案例来引入netty,先看看结果先看看服务端:再来看看客户端:我们下面就来看看我是怎么使用netty来完成客户端与服务端的交互。转载 2020-06-23 15:09:33 · 142 阅读 · 0 评论