摘要: 对Calculator 接口的实现类MyCalculator 生成代理对象,注意JDK实现动态代理必须指定接口。 1 public interface Calculator { 2 3 public int add(int i, int j); 4 5 public int sub(int i, i 阅读全文
posted @ 2022-03-11 01:38 独醉乄 阅读(70) 评论(0) 推荐(0)
摘要: 模板方法设计模式的练习,笔者在众多框架源码中多次见过此设计模式,spring的灵魂所在 1 // 定义抽象类 2 abstract class GetTime { 3 final long getTime() { 4 long start = System.currentTimeMillis(); 阅读全文
posted @ 2022-03-11 01:25 独醉乄 阅读(35) 评论(0) 推荐(0)
摘要: 1 public class Main { 2 public static void main(String[] args) { 3 Msg msg = new Msg(); 4 msg.setMsg("要处理的数据<xxxJava技术决定一切>,996"); 5 FilterChain filte 阅读全文
posted @ 2022-03-11 01:18 独醉乄 阅读(36) 评论(0) 推荐(0)
摘要: 自旋锁是指尝试获取锁的线程不会因为获取锁失败而阻塞,而是采用循环的方式去尝试获取锁,也就是说用循环替代了阻塞,好处是减少线程上下文切换的消耗,缺点是会消耗CPU 1 /*手撕自旋锁*/ 2 public class SpinLock { 3 AtomicReference<Thread> atomi 阅读全文
posted @ 2022-03-11 01:02 独醉乄 阅读(28) 评论(0) 推荐(0)
摘要: 思考: lock锁是锁住lock() 和unlock()之间的代码,让其变成单线程,所以要想实现一个lock功能,就要想怎么实现这样两个方法 去填充lock()和unlock()方法要抓住currentThread这个关键方法就可以 使用synchronized的时候如何让线程等待呢?是用wait( 阅读全文
posted @ 2022-03-11 00:59 独醉乄 阅读(102) 评论(0) 推荐(0)
摘要: 一、MyBatis的架构 接口层:和用户直接交互 数据处理层:原生JDBC的流程 框架支撑层:支持数据处理层走完整个流程 引导层:引导启动mybatis,基于XML配置文件的方式/JavaAPI方式创建SqlSessionFactory 二、MyBatis流程 1.根据全局配置文件创建SqlSess 阅读全文
posted @ 2022-03-11 00:48 独醉乄 阅读(138) 评论(0) 推荐(0)
摘要: spring容器启动的核心refresh方法我相信大家都不陌生,其中invokeBeanFactoryPostProcessors方法是处理beanFactory的一个非常重要的方法,@Component @Bean等等都是在该方法里实现解析的。 1 @Configuration 2 @Compon 阅读全文
posted @ 2022-03-11 00:03 独醉乄 阅读(241) 评论(0) 推荐(0)
摘要: 1 前置知识 1.1 socket是什么? 就是传输控制层tcp连接通信。 1.2 fd是什么? fd既file descriptor-文件描述符。Java中用对象代表输入输出流等...在Linux系统中不是面向对象的,是一切皆文件的,拿文件来代表输入输出流。其实是一个数值,例如1,2,3,4... 阅读全文
posted @ 2021-11-24 17:30 独醉乄 阅读(293) 评论(0) 推荐(0)
摘要: 一、LVS介绍 linux virtual server简称LVS,是章文嵩博士1998年发起的一个开源项目。官网:http://www.linuxvirtualserver.org。Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对 阅读全文
posted @ 2021-10-08 10:11 独醉乄 阅读(81) 评论(0) 推荐(0)