From 137710c64535da5a13ed4f2aa6429a1133356d5a Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Mon, 3 Sep 2018 22:34:58 +0800 Subject: [PATCH] auto commit --- ...\256\351\242\230\346\261\207\346\200\273.md" | 16 ---------------- ...\210\346\201\257\351\230\237\345\210\227.md" | 2 +- "notes/\347\274\223\345\255\230.md" | 17 ++++++++++++----- 3 files changed, 13 insertions(+), 22 deletions(-) delete mode 100644 "notes/CyC \345\255\246\344\271\240\344\272\244\346\265\201\347\276\244 \351\227\256\351\242\230\346\261\207\346\200\273.md" diff --git "a/notes/CyC \345\255\246\344\271\240\344\272\244\346\265\201\347\276\244 \351\227\256\351\242\230\346\261\207\346\200\273.md" "b/notes/CyC \345\255\246\344\271\240\344\272\244\346\265\201\347\276\244 \351\227\256\351\242\230\346\261\207\346\200\273.md" deleted file mode 100644 index 806d48d0..00000000 --- "a/notes/CyC \345\255\246\344\271\240\344\272\244\346\265\201\347\276\244 \351\227\256\351\242\230\346\261\207\346\200\273.md" +++ /dev/null @@ -1,16 +0,0 @@ - -* [0. 进程内存空间中,堆和栈的区别](#0-进程内存空间中,堆和栈的区别) - - - -# 0. 进程内存空间中,堆和栈的区别 - -> C++ - -堆:动态、malloc()、new、链式分配、向上生长;栈:函数调用、编译器分配回收、向下生长。 - -https://www.cnblogs.com/sunziying/p/6510030.html - -By @CyC - ---- diff --git "a/notes/\346\266\210\346\201\257\351\230\237\345\210\227.md" "b/notes/\346\266\210\346\201\257\351\230\237\345\210\227.md" index bc80894d..2226de74 100644 --- "a/notes/\346\266\210\346\201\257\351\230\237\345\210\227.md" +++ "b/notes/\346\266\210\346\201\257\351\230\237\345\210\227.md" @@ -70,7 +70,7 @@ 接收端能够从消息队列成功消费一次消息。 -实现方法: +两种实现方法: - 保证接收端处理消息的业务逻辑具有幂等性:只要具有幂等性,那么消费多少次消息,最后处理的结果都是一样的。 - 保证消息具有唯一编号,并使用一张日志表来记录已经消费的消息编号。 diff --git "a/notes/\347\274\223\345\255\230.md" "b/notes/\347\274\223\345\255\230.md" index 26d96be1..771c5f6a 100644 --- "a/notes/\347\274\223\345\255\230.md" +++ "b/notes/\347\274\223\345\255\230.md" @@ -58,6 +58,7 @@ public class LRU implements Iterable { } } + public LRU(int maxSize) { this.maxSize = maxSize; @@ -70,6 +71,7 @@ public class LRU implements Iterable { tail.pre = head; } + public V get(K key) { if (!map.containsKey(key)) { @@ -83,6 +85,7 @@ public class LRU implements Iterable { return node.v; } + public void put(K key, V value) { if (map.containsKey(key)) { @@ -100,30 +103,34 @@ public class LRU implements Iterable { } } + private void unlink(Node node) { Node pre = node.pre; - node.pre = node.next; - node.next = pre; + Node next = node.next; + pre.next = next; + next.pre = pre; } + private void appendHead(Node node) { node.next = head.next; + node.pre = head; head.next = node; } + private Node removeTail() { Node node = tail.pre; - node.pre = tail; + tail.pre = node.pre; return node; } + @Override public Iterator iterator() { return new Iterator() { - private Node cur = head.next; - @Override public boolean hasNext() { return cur != tail; -- GitLab