Skip to content

Commit 2f4749d

Browse files
committed
JAVA 知识体系-LRU缓存设计
1 parent 1d34a97 commit 2f4749d

File tree

2 files changed

+40
-12
lines changed

2 files changed

+40
-12
lines changed

README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
- Session和cookie的区别。
139139
### 架构设计与分布式
140140

141-
- 用java自己实现一个LRU。
141+
- [用java自己实现一个LRU。](https://github.com/randian666/algorithm-study/blob/master/src/main/java/com/algorithm/study/demo/LRUCache/LRUMap.java)
142142
- 分布式集群下如何做到唯一序列号。
143143
- 设计一个秒杀系统,30分钟没付款就自动关闭交易。
144144
- 如何使用redis和zookeeper实现分布式锁?有什么区别优缺点,会有什么问题,分别适用什么
@@ -226,21 +226,21 @@
226226
- MYSQL的主从延迟怎么解决。
227227
### 消息队列
228228

229-
- 消息队列的使用场景。
229+
- [消息队列的使用场景。](https://blog.csdn.net/seven__________7/article/details/70225830)
230230
- 消息的重发,补充策略。
231231
- 如何保证消息的有序性。
232232
- 用过哪些MQ,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗,你们公司的MQ服务
233233
- 架构怎样的。
234234
- MQ系统的数据如何保证不丢失。
235235
- rabbitmq如何实现集群高可用。
236-
- kafka吞吐量高的原因。
237-
- kafka 和其他消息队列的区别,kafka 主从同步怎么实现。
236+
- [kafka吞吐量高的原因。](https://my.oschina.net/runningwork/blog/918613)
237+
- [kafka架构和原理](http://lxw1234.com/archives/2015/09/504.htm)
238238
- 利用mq怎么实现最终一致性。
239239
- 使用kafka有没有遇到什么问题,怎么解决的。
240240
- MQ有可能发生重复消费,如何避免,如何做到幂等。
241241
- MQ的消息延迟了怎么处理,消息可以设置过期时间么,过期了你们一般怎么处理。
242242
### 缓存
243-
243+
- [Redis的高并发和快速原因](https://mp.weixin.qq.com/s/HuwgTvNtmHJ9tpF7V53opg)
244244
- 常见的缓存策略有哪些,如何做到缓存(比如redis)与DB里的数据一致性,你们项目中用到了
245245
- 什么缓存系统,如何设计的。
246246
- [如何防止缓存击穿和雪崩。](https://mp.weixin.qq.com/s/SQQy6NKvoAgIaeAjzkRpDw)
@@ -264,10 +264,11 @@
264264
-
265265
### 搜索
266266

267-
- elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。elasticsearch的倒排索引是什么。
267+
- elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
268+
- elasticsearch的倒排索引是什么。
268269
- elasticsearch 索引数据多了怎么办,如何调优,部署。
269-
- elasticsearch是如何实现master选举的。
270+
- [elasticsearch是如何实现master选举的。](https://zhuanlan.zhihu.com/p/34830403)
270271
- 详细描述一下Elasticsearch索引文档的过程。
271-
- 详细描述一下Elasticsearch搜索的过程。
272+
- [详细描述一下Elasticsearch搜索的过程。](https://blog.csdn.net/u010454030/article/details/79794788)
272273
- Elasticsearch在部署时,对Linux的设置有哪些优化方法?
273-
- lucence内部结构是什么。
274+
- [lucence内部结构是什么。](https://www.jianshu.com/p/0dfcee4637c5)

src/main/java/com/algorithm/study/demo/algorithm/Jianzhi02.java

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
/**
88
*
9-
* 输入个链表的头结点,从尾到头反过来打印出每个结点的值
9+
* 单链表操作
1010
*
1111
**/
1212

@@ -59,7 +59,7 @@ public int size(){
5959
return size;
6060
}
6161
/**
62-
* 从尾到头反过来打印出每个结点的值
62+
* 输入个链表的头结点,从尾到头反过来打印出每个结点的值
6363
*/
6464
public void printListInverselyUsingIteration() {
6565
Stack<ListNode> stack=new Stack();
@@ -75,6 +75,33 @@ public void printListInverselyUsingIteration() {
7575
}
7676

7777
}
78+
/****
79+
*单链表反转
80+
*/
81+
public ListNode reversalNode(){
82+
ListNode previousNode = null;
83+
ListNode currentNode = root;
84+
ListNode headNode = null;
85+
while (currentNode != null) {
86+
ListNode nextNode = currentNode.next;
87+
if (nextNode == null) {
88+
headNode = currentNode;
89+
}
90+
currentNode.next = previousNode;
91+
previousNode = currentNode;
92+
currentNode = nextNode;
93+
System.out.println();
94+
}
95+
return headNode;
96+
}
97+
98+
/**
99+
* 链表中环检测
100+
* *合并两个有序链表
101+
* * 删除链表倒数第N个节点
102+
* * 求链表的中间节点
103+
* @param args
104+
*/
78105

79106

80107
public static void main(String[] args) {
@@ -85,6 +112,6 @@ public static void main(String[] args) {
85112
listnode.add(1);
86113
System.out.println("size:"+listnode.size());
87114
listnode.printListInverselyUsingIteration();
88-
115+
listnode.reversalNode();
89116
}
90117
}

0 commit comments

Comments
 (0)