
源码分析
jx_ming
这个作者很懒,什么都没留下…
展开
-
手写Spring IOC
什么是SpringIOCspring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring来管理这些,实现解耦。SpringIOC原理使用反射机制+XML技术手写SpringIOC XML版本解析xml文件,获取所有bean节点信息使用方法参数bean id查找配置文件中 bean 节点的 id 信息是否一致, 获取 c...原创 2019-07-29 16:01:33 · 229 阅读 · 0 评论 -
Spring 事务
事务的基本特性原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。拿转账来说,假设用户A和用户B两者的钱加起来一共...原创 2019-07-26 09:55:50 · 153 阅读 · 0 评论 -
AOP技术
什么是AOP技术?AOP: Aspect Oriented Programming 面向切面编程。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。应用场景日志记录,性能统计,安全控制,事务处理,异常处理等等。主要的意图将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行...原创 2019-07-24 11:52:20 · 109 阅读 · 0 评论 -
手写 Springmvc 框架
什么是 Servlet?Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。Java Servlet 通常情况下与使用 CGI(Common Gatewa...原创 2019-07-30 14:42:06 · 129 阅读 · 0 评论 -
手写数据库连接池
配置数据库连接池的参数空闲线程数(初始化线程,还没有被使用) 2活动线程数(正在被使用线程) 3最大线程数(限制最多可创建) 7空闲线程已经全部被使用,最多实际可用多少个线程 2 + 3 = 5基本原理在内部对象池中,维护一定数量的数据库连接,并对外暴露数据库连接的获取和返回方法。如外部使用者可通过getConnection方法获取数据库连接,使用完毕后再通过releaseConne...原创 2019-08-01 09:24:53 · 125 阅读 · 0 评论 -
手写MyBatis框架
Mybaits和数据库交互的方式使用传统的 MyBatis 提供的 API使用 Mapper 接口使用 Mapper 接口MyBatis 将配置文件中的每一个 节点抽象为一个 Mapper 接口这个接口中声明的方法和 节点中的<select|update|delete|insert> 节点项对应,即<select|update|delete|insert> ...原创 2019-08-06 14:06:08 · 171 阅读 · 0 评论 -
手写LinkedList
LinkedList数据结构原理LinkedList底层的数据结构是基于双向循环链表的,且头结点中不存放数据。既然是双向链表,那么必定存在一种数据结构——我们可以称之为节点,节点实例保存业务数据,前一个节点的位置信息和后一个节点位置信息数组和链表结构对比数组 是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量...原创 2019-08-09 13:47:42 · 119 阅读 · 0 评论 -
手写JDK1.7版本的HashMap
HashMap介绍底层结构JDK1.7 HashMap的底层结构是由数组+链表构成的。JDK1.8 HashMap的底层结构是由数组+链表+红黑树构成的。put和get方法put()方法大概过程如下:如果添加的key值为null,那么将该键值对添加到数组索引为0的链表中,不一定是链表的首节点。如果添加的key不为null,则根据key计算数组索引的位置:数组索引处存在链表,则遍历...原创 2019-08-19 09:40:19 · 325 阅读 · 1 评论 -
手写ArrayList集合框架
数组拷贝Arrays.copyOf功能是实现数组的复制,返回复制后的数组。参数是被复制的数组和复制的长度System.arraycopy 方法:如果是数组比较大,那么使用System.arraycopy会比较有优势,因为其使用的是内存复制,省去了大量的数组寻址访问等时间复制指定原数组src到目标数组dest。复制从src的srcPos索引开始,复制的个数是length,复制到dest的索引从...原创 2019-08-07 14:11:26 · 125 阅读 · 0 评论