什么是责任链模式? 责任链模式是一种行为行设计模式 在责任链模式中,会有多个处理器依次处理同一个请求。一个请求先经过A处理器处理,然后再把请求传递给B处理器处理,处理完在交由C处理器。以此类推,形成一个链条。链条上每个处理器各自承担各自的处理职责。
redis做为缓存,数据的持久化是怎么做的? 在Redis中提供了两个持久化方案,1)RDB (快照文件) ,2)AOF(日志文件-追加命令)。
什么是Redis Redis是基于内存的数据库,它支持许多数据类型。比如像常见的String,Set,Hash,List,ZSet,Stream等。并且对于这些数据类型,Redis的操作都是原子性的,因此无需考虑并发竞争的问题。 另外,由于他是基于内存的数据,因此读写速度非常快,常用于缓存,消息队列
Java的集合类分为两大类。一个是Collection接口另一个是Map接口。 前者主要是List,Set,Queue。用于存储对象。 后者则是存储的键值对。 List接口: LinkedList 基于双向链表的List,插入,删除速度快,但是查询数据慢。 ArrayList 基于动态数组的List
JDK1.7 ConcurrentHashMap使用的是分段锁,即每个Segment是独立的,可以并发访问不同的的Segment,默认是16个Segment,即最多有16个线程可以并发访问。 JDK1.8移除了分段锁,锁的粒度变得更加细化,改用CAS进行插入操作。只有在更新或删除的时候使用synch
HashMap是基于哈希表的数据结构,用于存储键值对。其核心是将键的哈希值映射到数组的索引位置。在JDK1.7以前,通过数组,链表来解决哈希冲突。JDK1.8以后通过数组,链表,红黑树来处理哈希冲突。 HashMap的初始容量是16,负载因子是0.75。如果数组容量超过16*0.75=12后,则开始
实现秒杀下单 我们点击限时抢购,然后查看发送的请求 请求网址: http://localhost:8080/api/voucher-order/seckill/13 请求方法: POST 看样子是VoucherOrderController
volatile和synchronized有什么区别? Synchronized解决了多线程访问共享资源时可能出现访问数据不一致的问题,保证了线程安全性。 Volatile解决了变量在多线程环境下的可见性和有序性问题,确保了变量的修改对其他线程是可见的。 Synchronized: Synchron