摘要: 1.ApplicationContext总体初始化流程 2.初始化BeanFactory(DefaultLlistableBeanFactory): 3.填充BeanFactory的各种功能 4.激活BeanFactory处理器 5.剩下的初始化流程就比较简单了 文档地址: 链接:https://p 阅读全文
posted @ 2020-10-09 11:07 J-mo-太阳 阅读(116) 评论(0) 推荐(0) 编辑
摘要: Spring源码分析之SpringMVC请求处理流程 (1) WebApplicationContext,servlet对象的初始化以后再研究,今天从doDispatch()方法入手,说一下请求处理的流程。根据请求匹配处理的方法--》参数的绑定--》激活方法--》返回执行结果--》最后处理返回的结果 阅读全文
posted @ 2020-10-09 11:06 J-mo-太阳 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1.GC的分类 JVM在进行GC时,可能针对三个区域进行垃圾回收分别是新生代、老年代、方法区,大部分时候回收的都是新生代。GC类型主要有以下四种类型。 新生代收集(Minor GC/Young GC):只针对新生代的垃圾收集。具体点的是Eden区满时触发GC。 Survivor满不会触发Minor 阅读全文
posted @ 2020-09-19 22:44 J-mo-太阳 阅读(5325) 评论(0) 推荐(0) 编辑
摘要: 执行逻辑并不是很难懂,先上一个流程图。 源码流程: 增强逻辑方法实现: transactionInfo封装类详解: transactionInfo的创建: 事务源码解析完毕! 阅读全文
posted @ 2020-09-18 14:52 J-mo-太阳 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 一,Semphore的使用 信号量主要有两个作用,一个是用于多个共享资源的互斥使用,另一个用于并发线程数控制。 (1)通过acquire()获取一个信号量,计数器减一,信号量为0,线程进入阻塞等待状态。 (2)通过realease()释放一个信号量,计数器加一,如果有等待的线程则唤醒。 (3)实战 阅读全文
posted @ 2020-09-18 11:45 J-mo-太阳 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 直接上流程图: 阅读全文
posted @ 2020-09-03 10:09 J-mo-太阳 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 为什么使用java内部类? 使用内部类的一个主要原因:每个内部类都能独立的继承一个类(接口),无论外围类是否已经继承某个类,对内部类没有任何的影响。 使用内部类的优点:它能非常好的解决多重继承的问题,提供了更好的封装,除了外围类,其他的类都不能访问。 内部类的使用: 内部类的使用方式有四种:成员内部 阅读全文
posted @ 2020-07-29 11:07 J-mo-太阳 阅读(114) 评论(0) 推荐(0) 编辑
摘要: Mybatis是一款优秀的持久层框架,它支持自定义sql,存储过程以及高级映射,几乎不需要任何的JDBC代码以及设置参数和获取结果集的工作。接下来看一下Mybatis的基本使用。 String resource = "org/mybatis/example/mybatis-config.xml"; 阅读全文
posted @ 2020-07-16 10:13 J-mo-太阳 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 1.ThreadLocal是什么呢? ThreadLocal与并发问题相关,每个ThreadLocal能够存放一个线程级别的变量,而它本身又能被多个线程共享使用,并且绝对的线程安全(数据隔离),它本身是为线程安全和某些特定场景的问题而设计的。说到这是不是有点迷惑,反正笔者刚了解的ThreadLoca 阅读全文
posted @ 2020-07-09 20:34 J-mo-太阳 阅读(738) 评论(0) 推荐(0) 编辑
摘要: 1.关于序列化和反序列化 把对象转换为字节序列的过程称为对象的序列化;将字节序列恢复为对象的过程称为反序列化。对象的序列化主要有两种用途:1)持久化,将对象持久化到磁盘上。2)网络传输,在网络上传输对象的字节序列。3)对象的复制,克隆的方法如果要实现多层克隆的话,还是比较麻烦的,序列化可以很方便的进 阅读全文
posted @ 2020-07-09 17:25 J-mo-太阳 阅读(224) 评论(0) 推荐(0) 编辑