摘要:
[TOC] 阻塞线程关键字 线程有几种状态? 新建状态、就绪状态、运行状态、阻塞状态、死亡状态 使线程进入阻塞状态的几种方式? wait、yield、sleep、join、interrupt wait 使当前线程让出锁,进入阻塞状态,直到超时或者notify,线程进入就绪状态 关于wait有两点要注 阅读全文
摘要:
[TOC] import @Import用在类上 ,通过快速导入的方式把对象实例加入spring容器中 有三种用法: 1、直接在类上标注上要导入的class 2、ImportSelector方式【重点】 3、ImportBeanDefinitionRegistrar方式 直接在类上标注上要导入的cl 阅读全文
摘要:
[TOC] HashMap 1. 首先判断是否初次使用,如果是,则初始化数组,默认大小为16。 2. 计算key的hash值,定位到数组的索引位置,判断数组该位置的值是否为null,如果为null直接赋值给数组的该位置 3. 如果不为null,判断当前数组下的哈希碰撞处理方式是链表还是红黑树(通过检 阅读全文
摘要:
[TOC] 概述 1. 有界无界: + 有界队列:队列大小是有限制的 ArrayBlockingQueue:数组实现,满了就通过锁阻塞等待 LinkedBlockingQueue:虽然是有界队列,但是容量是个非常大的值,根本不会满。 满了也是通过锁阻塞 + 无界队列: PriorityQueue:数 阅读全文
摘要:
[TOC] Vector:线程安全,本质和ArrayList一样是动态数组,方法都是通过sychronize实现安全的,不建议使用,可以用CopyOnWriteArrayList。 Stack:Vector子类,本质也是动态数组,它实现的是先进后出的栈,效率低下可以用ArrayDeque来替代。 A 阅读全文
摘要:
消息队列 消息队列的作用?使用场景? 解耦、异步处理、消峰。 解耦:比如订单系统下单后需要扣库存,可以把扣库存部分扔入mq,解耦。 异步处理:比如用户注册,需要更新数据库、发送邮件、发送短信,三部分串行完成后返回给客户端,则可以通过mq将发送邮件和短信扔给mq后直接返回。 消峰:比如秒杀系统,可以在 阅读全文