面试总结1 字典树、字典树的优缺点、二叉排序树、排序二叉树顺序存储与链式存储的区别、二叉树与字典树的使用场景、过滤器filter用到了责任链模式、http与https的区别、乐优项目的深理解

总内容

字典树

字典树的优缺点

二叉排序树

排序二叉树顺序存储与链式存储的区别

二叉树与字典树的使用场景

过滤器filter用到了责任链模式

http与https的区别

https=http+ssl协议,那么什么是ssl协议。以及ssl的优点

乐优项目与ithings项目的深理解

怎样创建线程池

线程池类创建线程时的参数

线程池类的常用方法

gc回收策略

避免数据库索引失效的方式

红黑树

B+树

B+树的特征,

B+树的优点

 

1 字典树

trie树,又叫字典树,前缀树,单词查找树,是一种多叉树结构,

2 字典树的优缺点

trie树的核心思想是空间换时间,

利用字符串的公共前缀来减少无谓的字符串的比较以达到提高查询效率的目的

 

3  二叉排序树

 

4  排序二叉树顺序存储与链式存储的区别

 

5  二叉树与字典树的使用场景

 

6  过滤器filter用到了责任链模式

 

7 http与https的区别

HTTPS和HTTP的区别主要如下:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

8 https=http+ssl协议,那么什么是ssl协议。以及ssl的优点

 

9 乐优项目与ithings项目的深理解

怎么存储用户信息,如果直接存储在cookie不安全,
就通过jwt(java web token)加密成token存储在cookie里面,
并且保证安全性,给每个用户开启一个thread local线程



怎么实现前后端分离,用vue框架,通过ajax和core



ithings

单片机检测汉江水情,通过红外检测,单片机里集成了mysql数据库
数据库每10秒一采集
然后将数据上传到阿里云云平台
你输入链接地址连接到阿里云云平台,下载数据

然后java里面通过jfreechart实现数据的多种选择的可视化
例如柱状图、饼图、折线图等等

10 怎样创建线程池

newfixedThreadpool是创建线程池executerServer的,固定线程
newSignThreadpool                             单一线程
newcacheThreadpool                            可缓存线程
newScheduleThreadpool                         定时线程

也就是创建类似于Threadpoolexecuter

11 线程池类创建线程时的参数

 

12 线程池类的常用方法

 

13   gc回收策略

 

14  避免数据库索引失效的方式

 

15 红黑树

 

16  B+树

 

 

 

 

 

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用二叉树来实现字典树,以下是用C++语言编写的一个示例代码: ```cpp #include <iostream> using namespace std; const int ALPHABET_SIZE = 26; struct TrieNode { TrieNode* children[ALPHABET_SIZE]; bool isEndOfWord; }; TrieNode* createNode() { TrieNode* newNode = new TrieNode; newNode->isEndOfWord = false; for (int i = 0; i < ALPHABET_SIZE; i++) { newNode->children[i] = NULL; } return newNode; } void insert(TrieNode* root, string word) { TrieNode* cur = root; for (int i = 0; i < word.length(); i++) { int index = word[i] - 'a'; if (cur->children[index] == NULL) { cur->children[index] = createNode(); } cur = cur->children[index]; } cur->isEndOfWord = true; } bool search(TrieNode* root, string word) { TrieNode* cur = root; for (int i = 0; i < word.length(); i++) { int index = word[i] - 'a'; if (cur->children[index] == NULL) { return false; } cur = cur->children[index]; } return (cur != NULL && cur->isEndOfWord); } int main() { TrieNode* root = createNode(); insert(root, "apple"); insert(root, "banana"); insert(root, "cherry"); cout << "Searching for 'apple': " << (search(root, "apple") ? "Found" : "Not Found") << endl; cout << "Searching for 'banana': " << (search(root, "banana") ? "Found" : "Not Found") << endl; cout << "Searching for 'cherry': " << (search(root, "cherry") ? "Found" : "Not Found") << endl; cout << "Searching for 'grape': " << (search(root, "grape") ? "Found" : "Not Found") << endl; return 0; } ``` 这段代码演示了如何使用二叉树实现字典树的插入和搜索操作。首先,我们创建了一个TrieNode结构体,其中包含一个布尔型变量`isEndOfWord`用于标记单词的结尾,以及一个包含26个子节点的数组`children`,用于存储每个字母的子节点。 然后,我们定义了一些辅助函数。`createNode`函数用于创建新的节点,`insert`函数用于将单词插入字典树,`search`函数用于搜索字典树中是否存在某个单词。 在主函数中,我们创建了一个空的字典树,并插入了几个单词。然后,我们通过调用`search`函数来搜索特定的单词,并输出搜索结果。 注意:这只是一个简单的示例代码,实际应用中可能需要考虑更多的功能和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值