语法范式
上下文无关的组成部分:
- 终结符号
- 非终结符号
- 一个开始符号
- 一组产生式
例如,下面数学表达式:
- 终结符号(词法单元)是组成串的基本符号,例如上面的
+
,-
。 - 非终结符号是表示串的集合的语法变量,例如上面的term和factor。非终结符号表示的串集合用于定义由文法生成的语言。
上下文无关的组成部分:
例如,下面数学表达式:
expr→expr+term
expr→expr−term
expr→term
term→term∗factor
term→term/factor
term→factor
factor→(expr)
factor→id
+
,-
。SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。当防火墙后的客户端要访问外部的服务器时,就跟SOCKS代理服务器连接。这个代理服务器控制客户端访问外网的资格,允许的话,就将客户端的请求发往外部的服务器。根据OSI模型,SOCKS是会话层的协议,位于表示层与传输层之间。
google 提出了 Jump consistent hash 算法,跳转一致性哈希不需要存储,速度更快,并且在均匀划分key方面做得更好。它的主要限制是桶必须按顺序编号,这使得它 比分布式 Web 缓存更适合数据存储应用程序
一致性哈希算法是一种特殊的哈希算法, 当目标槽位数量发生变化时,它会尽力降低的重新映射的数量。 传统的哈希表设计中,添加或者删除一个槽位,会造成全量的重新映射, 一致性哈希则追求的是增量式重新映射。
给定一个字符串 s,找到 s 中最长的回文子串?
散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)
。査找时,根据这个确定的对应关系找到给定值key的映射f(key)
,若査找集合中存在这个记录,则必定在f(key)
的位置上。
我们把这种对应关系f称为散列函数,又称为哈希(Hash)函数。按这个思想,采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表(Hashtable)。那么关键字对应的记录存储位置我们称为散列地址。
bitmap适用于什么场景?
bitmap的核心思想是将一个元素的可能取值映射为某个空间内的值(常见的是1bit空间,提供0,1两种状态。或是2bit空间,提供 0,1,2,3四种状态)。通过某种顺序的映射表来节省存储空间。
tmpwatch
会在指定目录中递归删除指定时间段内未被访问的文件。通常,它用于自动清除临时文件系统目录,例如 /tmp
和 /var/tmp
。
lost+found
目录。tmpwatch
会根据文件的 atime(访问时间)而不是 mtime(修改时间)删除文件。tmpwatch
命令中添加其他参数来更改这些行为。警告: 不要在
/
中运行tmpwatch
或tmpreaper
,因为该程序中没有防止这种情况的机制。
我的Effective Java开发笔记