随笔分类 - 源码
摘要:mybatis字段映射的容错性 起因从一个bug说起,大致经历如下: 经过一次selectById,然后用查出来的数据做updateById。 数据的值 由 '' --> 0; 找遍相关代码,没有发现什么地方有setType(0)的动作,然后怀疑mybatis查询时的字段映射做了容错处理,将''转换
阅读全文
摘要:java线程池 合理使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高执行速度。当任务到达时,任务可以不需要等待线程创建就能立即执行; 提高线程的可管理性。线程是系统重要资源,线程池可以控制线程数量,避免独自创建线程,引发系统问题。 核心类-ThreadPo
阅读全文
摘要:spring 事物及Transactional注解的失效场景
阅读全文
摘要:Spring MVC 执行原理 通过跟进源码,整理了一些spring mvc 的运行流程,及一些自认为重要的代码片段,以记录为主,顺便分享一下。 Spring MVC 流程简述 首先是Spring Mvc的执行流程图 主要步骤 FrameworkServlet继承了HttpServlet http请
阅读全文
摘要:hashMap是非线程安全的,表现在两种情况下: 1 扩容: t1线程对map进行扩容,此时t2线程来读取数据,原本要读取位置为2的元素,扩容后此元素位置未必是2,则出现读取错误数据。 2 hash碰撞 两个线程添加元素发生hash碰撞,都要将此元素添加到链表的头部,则会发生数据被覆盖。 详情: H
阅读全文
摘要:ArrayDeque是Deque接口的一个实现,使用了可变数组,所以没有容量上的限制。 同时,ArrayDeque是线程不安全的,在没有外部同步的情况下,不能再多线程环境下使用。 ArrayDeque是Deque的实现类,可以作为栈来使用,效率高于Stack; 也可以作为队列来使用,效率高于Link
阅读全文
摘要:重要参数 初始长度:16 构造器 HashMap有4个构造器 public HashMap(); public HashMap(int initialCapacity) ; public HashMap(int initialCapacity, float loadFactor) ; public
阅读全文