海康威视面试经历

1 一面

1.1 大概讲一下简历中的一个项目

1.2 数据结构中常用的容器,讲解一下哈希表的优点,以及实现这个优点的简单原理

优点:

就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。

原理:

其取值过程是:

1. 得到key
2. 通过hash函数得到hash值
3. 得到桶号(一般都为hash值对桶数求模)
4. 比较桶的内部元素是否与key相等,若都不相等,则没有找到。
5. 取出相等的记录的value。

1.3 用过哪些设计模式,挑一个设计模式说说它的运用场景以及使用方法

常用模式:

单例模式/抽象工厂模式/建造者模式/原型模式/

桥接模式/装饰模式/享元模式/适配器模式/组合模式

观察者模式/状态模式/命令模式/中介者模式/模板方法/策略模式/职责链模式

 

1.4 为什么使用多进程?优点有哪些

多进程优点:

每个进程互相独立,不影响主程序的稳定性,子进程崩溃没关系;
通过增加CPU,就可以容易扩充性能;
可以尽量减少线程加锁/解锁的影响,极大提高性能,就算是线程运行的模块算法效率低也没关系;
每个子进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大

多线程缺点:

逻辑控制复杂,需要和主程序交互;
需要跨进程边界,如果有大数据量传送,就不太好,适合小数据量传送、密集运算
多进程调度开销比较大;

你可能感兴趣的:(海康威视面试经历)