摘要:        
对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)
        
 
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号