- 栈 -
Stack
:LIFO
- 后进先出 - 队列 -
Queue
:FIFO
- 先进先出。
可以这么记忆,栈需要压栈和出栈,想到压栈就想到把一个物体压到底部,因此这个物体只能最后才出来,因此栈是
FILO
;相对的,队列接是FIFO
。
Stack
:LIFO
- 后进先出Queue
:FIFO
- 先进先出。可以这么记忆,栈需要压栈和出栈,想到压栈就想到把一个物体压到底部,因此这个物体只能最后才出来,因此栈是
FILO
;相对的,队列接是FIFO
。
对于字符串相关的题目,双指针解法出现的频率非常高。
当我们需要 查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到 哈希法。
哈希法是牺牲了空间换取了时间。
最近一段时间 IDEA
总是会出现 Low Memory
的提示,最初我以为是我在 IDEA
中启动的项目占用内存过大导致的。因此之后有段时间,我在写代码时,会将不必要的项目关闭,但是还是会出现这个提示。
这篇文章记录了一次因对
Netty
读空闲机制了解不够透彻导致的问题。
最近 App
的 Socket
连接出现了问题,客户端的 Socket
连接已经中断了,但是服务端还保留着与客户端的连接信息,导致转发消息时出现了消息没有送达并且丢失的问题。
定位到问题是 Netty
心跳机制导致的问题,服务端代码中设置的是如果 150s
没有收到来自客户端的数据时(服务端是通过 channelRead()
方法是否触发来判断的),判断客户端读空闲,将客户端的 Socket
连接中断。