随笔 - 229
文章 - 0
评论 - 10
阅读 -
26万
01 2020 档案
springmvc控制器方法参数解析的那些事儿
摘要:spring mvc是如何对控制器方法里面的参数进行处理的? 还得从@EnableWebMvc这个注解说起。 启动这Mvc容器,自然就会加载WebMvcConfigurationSupport这个配置类,这个类做的事儿太多了,就看如下这段代码 @Bean public RequestMappingH
阅读全文
spring源码学习笔记之BeanDefinition接口
摘要:package org.springframework.beans.factory.config; import org.springframework.beans.BeanMetadataElement; import org.springframework.beans.MutableProper
阅读全文
MyBatis框架之迭代器模式
摘要:迭代器模式,一直没用过,也不会用。恰巧MyBatis框架中也使用到了迭代器模式,而且看起来还比较简单,在以后的工作中,若有需要咱们可模仿它的套路来干。 直接上代码 import java.util.Iterator; /** * @author Clinton Begin */ public cla
阅读全文
MyBatis框架之适配器模式
摘要:MyBatis框架有多处使用了设计模式,我们在阅读其源码时,需要好好体会它对设计模式的使用,以便于照着葫芦画瓢。本篇主要是记录一下适配器模式的使用。 适配器模式理解起来很简单,相当于使用了一个接口,将老旧的功能包装一下,使之适应新的需求(或许有错误,但错就错吧)。 MyBatis框架对适配器的使用,
阅读全文
spring+策略模式
摘要:需求: 这里虚拟一个业务需求,让大家容易理解。假设有一个订单系统,里面的一个功能是根据订单的不同类型作出不同的处理。 1. 常规代码实现 1.1 实体类 import lombok.Data; import java.math.BigDecimal; @Data public class Order
阅读全文
Java堆内存模型
摘要:在了解这一块知识的时候,需要知道jdk1.8之前与jdk1.8及之其之后的区别 新生代: 刚创建的对象, 有可能经历过几次GC 老年代: 经历过多次GC之后,仍然存活的对象 永久代: 比如intern()方法入池的对象实际上就进入了永久代, 永久代不会被回收。因为其本身属于一个bug性的存在,所以在
阅读全文
对象访问方式
摘要:Java对象访问是通过直接指针访问的方式, 而诸如C等语言则是通过句柄的方式 JVM规范(三大规范) Oracle > sun > HotSpot Oracle > EBA > JRockit IBM > JVM-S(J9) jvm权威公司就是Oracle, 因为三大规范,它占其二 JVM运行形式
阅读全文
JVM内存管理模型
摘要:Java程序执行流程 Java内存管理 JVM中的运行时数据区包括: (1) 程序计数器(program counter register) 记录程序的执行顺序,标记程序下一步要执行代码的顺序号, 占用一块很小的内存,基本上可以忽略不记.. (2) Java栈(stack) 保存堆内存地址,基本数据
阅读全文
springboot返回统一数据格式及其原理浅析
摘要:大家都知道,前后分离之后,后端响应最好以统一的格式的响应. 譬如: 名称描述 status 状态码,标识请求成功与否,如 [1:成功;-1:失败] errorCode 错误码,给出明确错误码,更好的应对业务异常;请求成功该值可为空 errorMsg 错误消息,与错误码相对应,更具体的描述异常信息 r
阅读全文
vue学习笔记01
摘要:vue扩展插件 (1) vue-cli 脚手架 (2) vue-resource(axios) : ajax请求 (3) vue-router 路由 (4) vuex 状态管理 (5) vue-lazyload 图片懒加载 (6) vue-scroller 页面光滑动相关 (7) mint-ui :
阅读全文
红黑树代码实现
摘要:// 这里JDK中TreeMap红黑树自平衡的代码 private void fixAfterInsertion(TreeMap.Entry<K, V> x) { // 新增节点,直接置为RED x.color = RED; // 父节点是红色 while (x != null && x != ro
阅读全文
单链表之升级版按节点序号添加
摘要:该示例的代码是在前一篇的基础上进行修改的. public class SingleLinkedListDemo { public static void main(String[] args) { //先创建几个节点 Node node1 = new Node(1, "老子", "太上老君"); N
阅读全文
单链表之简单版
摘要:下面是个单链表,且无序的实现代码. 需要注意的是有个head节点, 该节点不存储数据,只是表示链表的头节点. public class SingleLinkedListDemo { public static void main(String[] args) { //先创建几个节点 Node nod
阅读全文
冒泡排序
摘要:冒泡排序的中心思想就是通过遍历找出数组中最小的数往前排. import java.util.Arrays; /** * 冒泡排序 * 该排序算法的核心就是循环遍历,两两比较,找出较小的那个数往前排 */ public class BubbleSort { public static void mai
阅读全文
队列篇之使用环型数组模拟一个队列
摘要:在上一篇随笔中使用数据模拟了一个队列,但是有缺陷, 数组只能使用一次,原因是index指针一直往上++, 不能回到数组之前的位置. ArrayBlockingQueue源码给出了一种实现方案, 它是在判断队列(数组)满了之后,直接将putIndex重置为0, 这样offer元素到队列时,又可以利用数
阅读全文
lombok之美
摘要:1.定义一个Bean public class UserDO { private Integer id; private String userName; private String sex; private Integer age; public String getSex() { return
阅读全文
MySQL数据库中的事务特性
摘要:事务特性 事务具有4个特性:原子性、一致性、隔离性、持久性。这四个属性通常称为 ACID 特性。 原子性(atomicity):一个事务应该是一个不可分割的工作单位,事务中包括的操作要么都成功,要么都不成功。 一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。
阅读全文
Spring在一个事务中开启另一个事务
摘要:spring使用@Transactional开启事务,而且该注解使用propagation属性来指定事务的传播级别 @Transactional(propagation =Propagation.REQUIRES_NEW) // 开启一个新事务 使用REQUIRES_NEW就会开启一个新的事务吗?
阅读全文
队列篇之使用数组模拟一个队列
摘要:队列是一个有序列表, 可以使用数组实现, 也可以使用链表实现 队列遵守先进先出的原则 1. 下面使用数组模拟一个队列 public class ArrayQueueDemo { public static void main(String[] args) { ArrayQueue queue = n
阅读全文