技术重点
- 介绍让人能听懂
- 这个技术是干什么?
- 这个技术解决了什么问题?
- 这个技术如何解决了这个问题?
- 这个技术有什么弊端?
- 这个技术和其他有什么差别(为什么要选他)
List
- 干什么:数组结构的单列集合实现 Collction
- 解决什么问题:快速查询数据
- 如何解决:数组结构
- 缺点: 增删慢
- 对比: 有序,set 无序
Map
- 干什么:KV存储的,
- 解决什么问题:结合数组和链表优点
- 如何解决:
- 缺点:
- 对比:
队列 queue 有界队列,无界队列
- 是什么:一个队列就是一个先入先出(FIFO)的数据结构,Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。
阻塞queue
- 实现阻塞接口的: java.util.concurrent 中加入了 BlockingQueue 接口和五个阻塞队列类。它实质上就是一种带有一点扭曲的 FIFO 数据结构。不是立即从队列中添加或者删除元素,线程执行操作阻塞,直到有空间或者元素可用。 五个队列所提供的各有不同: * ArrayBlockingQueue :一个由数组支持的有界队列。 * LinkedBlockingQueue :一个由链接节点支持的可选有界队列。 * PriorityBlockingQueue :一个由优先级堆支持的无界优先级队列。 * DelayQueue :一个由优先级堆支持的、基于时间的调度队列。 * SynchronousQueue :一个利用 BlockingQueue 接口的简单聚集(rendezvous)机制。
非阻塞queue
ConcurrentLinkedQueue 是基于链接节点的、线程安全的队列。并发访问不需要同步。因为它在队列的尾部添加元素并从头部删除它们,所以只要不需要知道队列的大 小, ConcurrentLinkedQueue 对公共集合的共享访问就可以工作得很好。收集关于队列大小的信息会很慢,需要遍历队列
解决什么问题:线程池应用广泛
如何解决:
缺点:
对比:
多线程
反射
动态加载运行时的类
内存结构
垃圾回收
干什么:
解决什么问题:
如何解决:
缺点:
对比:
项目规模
web层上限
前台访问层Nginx
数据库上限
常见配置
并发多少
缓存
redis keyvalue 存储的键值对;
mongoDB
队列(中间件)
cloud
优化
设计