自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许诗宇的博客

java web开发,看完希望大家左边点一个赞,关注一波,谢谢。 如需联系请加qq 2943699258,并注明姓名与原因。个人的代码库为 https://gitee.com/xushiyu

  • 博客(787)
  • 资源 (10)
  • 论坛 (1)
  • 收藏
  • 关注

原创 spring总结

IOC容器的实现IOC的基本概念,IOCService Provider,IOC容器扩展 https://blog.csdn.net/xushiyu1996818/article/details/103898614IOC BeanFactory 简介,对象注册与依赖绑定方式,容器背后的实现 https://blog.csdn.net/xushiyu1996818/article...

2020-01-06 22:19:35 115

原创 leetcode 做的题目总结

完美完成的题目001-两数之和(two sum)-java(2,简单算法-数组)002-两数相加(add two numbers)-java(2,中级算法-链表)008-字符串转整数 (atoi)(String to Integer)-java(2,简单算法-字符串)013-罗马数字转整数(roman to integer)-java(2,简单算法-数学)01...

2019-06-13 11:18:07 292

原创 mybatis总结

目录一、MyBatis入门(映射文件与注解)1.springboot与mybatis整合的示例二、MyBatis语句(映射文件)1.总体语句语句的常用属性常用的sql语句动态sqlcdata(<>转义)和小于号大于号直接使用2.查询的结果ResultType和ResultMap查询的字段与resultType名称不一致插入后的主键获取...

2019-04-04 14:07:49 181

原创 spring源码分析 AOP

目录动态AOP使用示例创建用于拦截的bean创建Advisor创建配置文件测试动态AOP自定义标签注册AnnotationAwareAspectJAutoProxyCreator注册或者升级AnnotationAwareAspectJAutoProxyCreator处理proxy-target-class以及expose-proxy属性创建AOP代理获取增强器普通增强器的获取增加同步实例化增强器获取DeclareParents注解寻找匹配的增强器

2021-06-13 21:38:07 53

原创 spring源码分析 容器的功能拓展

注意:本文摘自 spring源码深度解析简介经过前面几章的分析,相信大家已经对Spring中的容器功能有了简单的了解,在前面的章 节中我们一直以BeanFactory接口以及它的默认实现类XmlBeanFactory为例进行分析,但是, Spring中还提供了另一个接口ApplicationContext, 用于扩展BeanFactory中现有的功能。ApplicationContext和BeanFactory两者都是用于加载Bean的,但是相比之下,Application­Context提供.

2021-06-09 22:37:13 54

原创 spring源码分析 bean的加载

目录简介FactoryBean的使用缓存中获取单例bean从bean的实例中获取对象获取单例准备创建bean处理override属性实例化的前置处理循环依赖什么是循环依赖Spring如何解决循环依赖创建bean创建bean的实例AutowireConstructorinstantiateBean实例化策略记录创建bean的ObjectFactory属性注入AutowireByNameAutowireByTypeapplyPr

2021-06-06 14:18:12 19 2

原创 spring源码分析 ioc标签的解析

注意:本文摘自 spring源码深度解析之前提到过Spring中的标签包括默认标签和自定义标签两种,而两种标签的用法以及解析 方式存在着很大的不同,本章节重点带领读者详细分析默认标签的解析过程。默认标签的解析是在parseDefaultElement函数中进行的,函数中的功能逻辑一目了然,分 别对4种不同标签(import、alias、bean和beans)做了不同的处理。bean标签的解析及注册在4种标签的解析中,对bean标签的解析最为复杂也最为重要,所以我们从此标签开始 深入分析,

2021-06-05 11:55:27 134 1

原创 spring源码分析 容器的基本实现

目录容器基本用法功能分析工程搭建Spring的结构组成beans包的层级结构核心类介绍DefaultListableBeanFactoryXmlBeanDefinitionReader容器的基础XmlBeanFactory配置文件封装加载Bean获取Xml的验证模式DTD与XSD区别验证模式的读取获取DocumentEntityResolver用法解析及注册BeanDefinitionsProfile属性的使用解析并注册Bean D

2021-06-03 00:04:34 60 5

原创 约瑟夫环问题

注意:本文参考 https://blog.csdn.net/tingyun_say/article/details/52343897简介首先,我们先来了解一下什么是约瑟夫环问题:讲一个比较有意思的故事:约瑟夫是犹太军队的一个将军,在反抗罗马的起义中,他所率领的军队被击溃,只剩下残余的部队40余人,他们都是宁死不屈的人,所以不愿投降做叛徒。一群人表决说要死,所以用一种策略来先后kill所有人。于是约瑟夫建议:每次由其他两人一起kill一个人,而被kill的人的先后顺序是由抽签决定的,约瑟夫..

2021-06-01 22:45:25 19

原创 mybatis源码分析 插件机制

目录简介插件机制原理源码分析植入插件逻辑执行插件逻辑实现一个分页插件注意:本文转自https://www.tianxiaobo.com/2018/08/26/MyBatis-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E6%8F%92%E4%BB%B6%E6%9C%BA%E5%88%B6/简介一般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者自行拓展。这样的好处是显而易见的,一是增加了框架的灵活性。二是开发者可以结合实际需求,..

2021-05-23 21:56:48 56

原创 mybatis源码分析 缓存原理

目录简介缓存类介绍PerpetualCacheLruCacheBlockingCacheCacheKey一级缓存二级缓存总结注意:本文转自https://www.tianxiaobo.com/2018/08/25/MyBatis-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E7%BC%93%E5%AD%98%E5%8E%9F%E7%90%86/简介在 Web 应用中,缓存是必不可少的组件。通常我们都会用 Redis 或 me..

2021-05-23 21:47:46 16

原创 mybatis源码分析 内置数据源

目录简介内置数据源初始化过程UnpooledDataSource初始化数据库驱动获取数据库连接PooledDataSource辅助类介绍获取连接回收连接小节总结注意:本文转自https://www.tianxiaobo.com/2018/08/19/MyBatis-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E5%86%85%E7%BD%AE%E6%95%B0%E6%8D%AE%E6%BA%90/简介本篇文章将向大家..

2021-05-23 21:37:40 11

原创 mybatis源码分析 SQL 的执行过程

注意:本文转自https://www.tianxiaobo.com/2018/08/17/MyBatis-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-SQL-%E7%9A%84%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B/简介在前面的文章中,我分析了配置文件和映射文件的解析过程。经过前面复杂的解析过程后,现在,MyBatis 已经进入了就绪状态,等待使用者发号施令。本篇文章我将分析MyBatis 执行 SQL 的过程,该过程比较复杂,涉及..

2021-05-23 21:30:16 14

原创 mybatis源码分析 映射文件解析过程

简介在上一篇文章中,我详细分析了 MyBatis 配置文件的解析过程。由于上一篇文章的篇幅比较大,加之映射文件解析过程也比较复杂的原因。所以我将映射文件解析过程的分析内容从上一篇文章中抽取出来,独立成文,于是就有了本篇文章。在本篇文章中,我将分析映射文件中出现的一些及节点,比如 <cache>,<cache-ref>,<resultMap>, <select | insert | update | delete> 等。除了分析常规的 XML 解...

2021-05-22 17:20:11 33

原创 mybatis源码分析 配置文件解析过程

目录简介配置文件解析入口解析 properties 配置解析 settings 配置settings 节点的解析过程元信息对象创建过程DefaultReflectorFactory 源码分析Reflector 源码分析PropertyTokenizer 源码分析设置 settings 配置到 Configuration 中解析 typeAliases 配置从 typeAlias 节点中解析并注册别名从指定的包中解析并注册别名注册 MyBatis 内部类

2021-05-22 16:34:41 9

原创 java多线程 SynchronousQueue源码分析

目录前言Transferer抽象类TransferStack节点成员节点类型TransferStack成员transfer方法awaitFulfillcleanTransferQueue节点成员节点类型TransferQueue成员transfer方法awaitFulfillclean无效操作总结注意:本文转自https://blog.csdn.net/anlian523/article/details/107872233前..

2021-05-07 22:30:55 17

原创 java多线程 LinkedTransferQueue源码分析

目录前言LinkedTransferQueue概述术语解释xfer交易后来的一方交易先来的一方tryAppendtryMatchDataunsplice为什么是普通语义而不是CAS内部删除 remove迭代器总结注意:本文转自 https://blog.csdn.net/anlian523/article/details/107876299前言LinkedTransferQueue是一种特殊的无界阻塞队列,它提供一种Transfer的功能,..

2021-05-07 22:18:05 16

原创 java多线程 DelayQueue源码分析

目录前言成员Leader-Follower入队出队take内存泄漏超时poll迭代器总结注意:本文转自https://blog.csdn.net/anlian523/article/details/107801405前言DelayQueue是一个无界阻塞队列,它和PriorityBlockingQueue一样是一个优先队列,但区别在于队列元素只能放置Delayed对象,而且只有元素到期后才能将其出队。内部是一个最小堆,堆顶永远是最先“到期”的那个元..

2021-05-07 22:01:52 35 2

原创 java多线程 PriorityBlockingQueue源码分析

目录前言成员构造器原地建堆入队offer扩容出队poll获取堆顶方法peek内部删除迭代器总结注意:本文转自https://blog.csdn.net/anlian523/article/details/107703623前言PriorityBlockingQueue是一个无界阻塞队列,它的出队方式不再是FIFO,而是优先级高的先出队。其内部实现是最小堆,即堆顶元素是逻辑上最小的那个元素,也是最先出队的那个元素。简单的说,如果a.com..

2021-05-06 23:00:27 13

原创 java多线程 LinkedBlockingDeque源码分析

目录前言成员构造器入队操作putFirstputLast出队操作takeFirsttakeLast删除内部节点removeFirstOccurrenceremoveLastOccurrence迭代器总结注意:本文转自 https://blog.csdn.net/anlian523/article/details/107685245前言LinkedBlockingDueue是一种有界阻塞队列,它的底层是双向链表,所以它是双向的。也就是说,..

2021-05-06 22:15:47 13

原创 java多线程 LinkedBlockingQueue源码分析

目录前言成员构造器入队addofferput超时offer入队方法总结出队removepolltake超时poll出队方法总结内部删除 remove(Object o)获取操作peekelement迭代器总结注意:本文转自 https://blog.csdn.net/anlian523/article/details/107601481前言LinkedBlockingQueue是一种FIFO(first-in..

2021-05-06 22:05:34 35

原创 java多线程 ArrayBlockingQueue源码分析

目录前言成员构造器入队addofferput超时offer总结出队peekpolltake超时poll总结remove 删除操作总结注意:本文转自 https://blog.csdn.net/anlian523/article/details/107577452前言ArrayBlockingQueue是一种FIFO(first-in-first-out 先入先出)的有界阻塞队列,底层是数组,也支持从内部删除元素。并发操作依赖..

2021-05-06 21:38:54 15

原创 java多线程 ConcurrentLinkedDeque源码分析

目录前言概述linkFirst 入队pollFirst 获取并出队first()succ()unlink()unlinkFirstskipDeletedPredecessorsupdateHeadupdateTailgc-unlinking松弛阈值unlink的Unlink interior node逻辑peekFirst 仅获取remove 删除操作size迭代器总结注意:本文转自 https://blog.csdn.ne..

2021-05-06 21:22:12 17

原创 java多线程 ConcurrentLinkedQueue源码分析

目录前言概述不变式基本不变式headtail初始化队列初始化Node初始化add/offer 入队操作出队操作pollpeekfirstremove 删除操作remove的bugsize 弱一致性的方法addAll迭代器总结注意:本文转自 https://blog.csdn.net/anlian523/article/details/107453433前言ConcurrentLinkedQueue是一种FIFO(..

2021-05-06 20:23:11 13

原创 java多线程 ScheduledThreadPoolExecutor源码分析

目录简介4个字段,方法now,内部类ScheduledTutureTask方法canRunInCurrentRunState,delayedExecute,reExecutePeriodic,onShutdown,2个decorateTask,4个构造函数方法2个triggerTime,overflowFree,4个scheduleXXX,execute,3个submit方法3个setXXX/getXXX,shutdown,shutdownNow,getQueue内部类Delayed

2021-05-05 22:35:30 36

原创 java多线程 ConcurrentHashMap源码分析

目录前言常量成员节点类构造器put 插入操作加锁情况红黑树的binCount固定为2返回情况spreadinitTablehelpTransferresizeStampsizeCtl的低16bit退出循环的条件treeifyBintryPresizeaddCount计数部分计数部分结束时扩容部分CAS失败影响扩容fullAddCountwasUncontended的作用collide的作用cellsBus

2021-05-05 22:14:54 39

原创 java多线程 ThreadPoolExecutor源码分析

简介package java.util.concurrent;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;import java.util.concurrent.atomic.AtomicInteger;import java.uti

2021-04-24 19:17:12 25

原创 java多线程 ConcurrentSkipListMap源码分析

目录前言源码注释术语节点定义构造器get 查找操作返回情况findPredecessorput 插入操作第一部分第二部分第三部分假设新建层数没有超过最大层数假设新建层数超过了最大层数返回情况remove 删除操作findNodetryReduceLevel返回情况marker存在的必要性如果marker不存在marker存在时总结注意:本文转自https://blog.csdn.net/anlian523/a..

2021-04-22 23:12:06 23

原创 java多线程 CopyOnWriteArraySet源码分析

目录前言与CopyOnWriteArrayList不同之处addIfAbsentaddAllAbsent总结注意:本文转载 https://blog.csdn.net/anlian523/article/details/106984506前言类似于上一篇讲的CopyOnWriteArrayList,CopyOnWriteArraySet可以认为是一个写时复制的HashSet。但CopyOnWriteArraySet的底层实现完全依赖了CopyOnWriteArrayL..

2021-04-22 22:29:40 18

原创 java多线程 CopyOnWriteArrayList源码分析

目录前言核心成员常用方法getsetaddremoveremove(int index)remove(Object o)findIndex代码块之后cleartoArray迭代器总结注意:本文转载:https://blog.csdn.net/anlian523/article/details/106978859前言CopyOnWriteArrayList 是一种写时复制的ArrayList,它将读操作和写操作的情形区分开来,并在写操作时拷贝

2021-04-22 22:17:56 14

原创 java多线程 Delayed,ScheduledFuture,ScheduledExecutorService,RunnableScheduledFuture源码分析

package java.util.concurrent;/** * 一个混合样式的接口,用于标记在给定延迟后应起作用的对象。 * * <p>该接口的实现必须定义一个compareTo方法,该方法提供与其getDelay方法一致的排序。 * * @since 1.5 * @author Doug Lea */public interface Delayed extends Comparable<Delayed> { /** * 在给定的时间单.

2021-04-22 21:57:45 19

原创 java多线程 ThreadFactory源码分析

package java.util.concurrent;/** * 根据需要创建新线程的对象。 * 使用线程工厂消除了对新线程的Thread(Runnable)调用的硬连接, * 使应用程序能够使用特殊的线程子类、优先级等。 * * <p> * 这个接口最简单的实现是: * <pre> {@code * class SimpleThreadFactory implements ThreadFactory { * public Thread newThr.

2021-04-21 21:43:52 11

原创 java多线程 RejectedExecutionHandler源码分析

package java.util.concurrent;/** * 不能由ThreadPoolExecutor执行的任务的处理程序。 * * @since 1.5 * @author Doug Lea */public interface RejectedExecutionHandler { /** * 方法,当执行不能接受任务时,ThreadPoolExecutor可以调用该方法。 * 这种情况可能发生在没有更多线程或队列槽可用的情况下,因为它们的边界将被.

2021-04-21 21:42:50 13

原创 java多线程 AbstractExecutorService源码分析

package java.util.concurrent;import java.util.*;/** * 提供ExecutorService方法的默认实现。 * 这个类使用newTaskFor返回的RunnableFuture实现了submit、invokeAny和invokeAll方法,该方法默认为这个包中提供的FutureTask类。 * 例如,submit(Runnable)的实现创建了一个关联的RunnableFuture,该RunnableFuture被执行并返回。 * 子...

2021-04-21 21:42:36 14

原创 java多线程 ExecutorService源码分析

package java.util.concurrent;import java.util.List;import java.util.Collection;/** * 一个执行器,它提供管理终止的方法,以及可以产生Future来跟踪一个或多个异步任务的进度的方法。 * * <p>ExecutorService可以被关闭,这将导致它拒绝新的任务。 * 提供了两种不同的方法来关闭ExecutorService。 * * shutdown方法允许之前提交的任务在终止前执行...

2021-04-21 21:42:12 11

原创 java多线程 Executor源码分析

package java.util.concurrent;/** * 执行已提交的Runnable任务的对象。 * 这个接口提供了一种将任务提交与每个任务如何运行的机制(包括线程使用、调度等细节)分离的方法。 * 通常使用Executor而不是显式地创建线程。 * 例如,与其对一组任务调用new Thread(new(RunnableTask())).start(),不如使用: * * <pre> * Executor executor = <em>anExecu.

2021-04-07 22:08:25 32 1

原创 java多线程 RunnableFuture源码分析

package java.util.concurrent;/** * 一个Runnable的Future。 * 成功执行run方法会导致future的完成,并允许访问它的结果。 * * @see FutureTask * @see Executor * @since 1.6 * @author Doug Lea * @param <V> The result type returned by this Future's {@code get} method */pub.

2021-04-07 22:07:34 37

原创 java多线程 Future源码分析

package java.util.concurrent;/** * Future表示异步计算的结果。 * 提供了一些方法来检查计算是否完成、等待计算完成以及检索计算结果。 * 只有在计算完成后,才可以使用get方法检索结果,如果有必要,就会阻塞,直到准备好为止。 * cancel方法执行取消操作。提供了其他方法来确定任务是正常完成还是被取消。 * * 计算完成后,不能取消计算。 * 如果您想使用Future来实现可取消性,但不提供可用的结果, * 则可以使用Future<...

2021-04-07 22:07:22 42 1

原创 java多线程 Callable源码分析

package java.util.concurrent;/** * 返回结果并可能引发异常的任务。 * 实现者定义了一个没有参数的方法,称为call。 * * <p>可调用接口类似于java.lang.Runnable, * 这两个类的实例都可能由另一个线程执行。 * 然而,Runnable不返回结果,也不能抛出检查异常。 * * <p>Executors类包含实用方法,可以将其他常用形式转换成Callable的类。 * * 与Runnable相比,Ca.

2021-04-07 22:07:08 39 1

原创 java多线程 Runnable源码分析

package java.lang;/** * Runnable接口应该由,实例要由线程执行的类,来实现。 * 类必须定义一个名为run的无参数方法。 * * <p> * 该接口旨在为那些希望在活动时执行代码的对象提供一个通用协议。 * 例如,Runnable是由Thread类实现的。 * 处于活动状态仅仅意味着一个线程已经启动,但还没有停止。 * * <p> * 此外,Runnable提供了在不子类化Thread的情况下使类处于活动状态的方法。 * .

2021-04-07 22:03:21 17

hibernate4所需 jar包

hibernate4所需 jar包

2018-09-04

算法第四版

算法第四版

2018-11-30

MySQL Cookbook(第2版)中文版

MySQL Cookbook(第2版)中文版

2018-11-30

springmvc所需jar包

springmvc所需jar包

2018-09-04

jsoup的jar包,包括文档

jsoup的jar包,包括文档,示例,使用方法,简单易懂。

2018-07-25

springmvc4和hibernate5整合jar包

springmvc4和hibernate5整合jar包

2018-09-05

mybatis jar包

mybatis.jar 放在项目文件夹/WEB-INF/lib下,mybatis jar包完整 可用

2018-07-25

Effective Java 中文第二版

Effective Java 中文第二版

2018-11-30

算法导论中文版

算法导论中文版

2018-11-30

hibernate3 jar包

hibernate3.jar 放在项目文件夹/WEB-INF/lib下,hibernate3 jar包完整 可用

2018-07-25

xushiyu1996818的留言板

发表于 2020-01-02 最后回复 2020-01-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除