百度“DB部”内推一面小记

百度某部门内推面试小记


之所以说某部门是因为面试官说他所在部门是做数据库开发的(what ? ? ?),这搞得我真不知道这是什么部门了,就称为DB部门吧~

1、自我介绍(blabla............我现在在科大讯飞实习)

2、你在讯飞实习做什么的?

答:我的工作是软件开发工程师,做教育云相关的产品(网站)

3、你想从事的岗位是什么?

答:软件开发工程师啊

详细点,这只是个大方向?我们部门主要做数据库相关开发你有兴趣没?你意向去哪个城市?

答:服务器开发相关的 网站什么的。可以的,有兴趣。北京深圳(先顺从再说。。。)

4、你主要会Java,说下java内存模型?

答:我从虚拟机/本地方法栈、方法区/堆(新生、老年、永久代)、程序计数器  具体每个模块细分成什么和存储的什么数据  展开叙述了一番,blabla.......

5、你说下有哪些垃圾回收算法?

答:4种,我从 标记-清除、复制算法(新生代)、标记-整理(老年代)、分代回收 分别叙述了思想以及他们各自优缺点以及应用场景。

6、给你设计一个垃圾回收器你会怎么设计?(问题大概是这样)

答:我从  以最短回收时间(其实我说的CMS垃圾回收器)为例,说了服务器端需要这种快速响应的回收机制;

and 设置阈值触发回收条件回收,减少回收这一操作次数的减少资源消耗。又从上边的垃圾回收算法为例展开说了不同场景运用不同回收算法。(说了这么多我也不知道我回答道他想获得那个点没有)

7、“==”和”equals” 区别?

我:(小case,blabla....)

8、switch条件里能不能用 char、String类型的?

答:可以(补充一下知识点:支持 byte、short、int、char、String,还有枚举类型)

9、多态是什么?说下你理解的多态?

10、多态的怎么实现的,原理是什么?

答:动态绑定(具体是什么我没说出来,需要复习)

11、给你设计一个高并发系统 你会考虑哪些?(印象中是这样)

答:少数据库读写,建缓存;分布式处理,多个结点处理 等等........(说的不是很全感觉不太好,我不敢说负载均衡怕他问 我不太会这个)

12、你接触过哪些设计模式?

答:单例、代理、工厂、生产者消费者模式等等。。

你说下生产-消费者模式原理?以及应用场景?

答:从等待-通知机制说起,blabla......然后又说了阻塞队列等等。。。

13、你平时开发环境是linux还是windows?了解linux不?

答:只了解linux一些基本查询语句

你说下你平时都用到哪些?(我觉得他是想从我用的指令操作里这里看出我的linux功力,让他失望....)

答:ls、rm、vi .....

14、说下tcp是怎么建立连接和释放的?

答:从三次握手、四次挥手(重点是我说我通过抓包,看到fin这些标记什么的,看到真的是4次,然后分析了一波原因)展开,blabla.......

15、TCP都有哪些状态???timewait(什么wait没听清)在什么时候产生?

答:(凌乱,我没注意看,下去补一下.....)

16、进程的通信方式有哪些?

答:管道、信号、消息队列、共享内存、信号量、套接字

17、套接字的tcp连接怎么连接的??

答:(忘了很多 我说的 客户端connect、服务器等待循环accept)(mark 答得不是很好 下去复习一下 程序上和 具体底层函数)

18、你平时数据库都是单机的?分布式数据库知道吗?

答:单机。(不是很清楚,正好听过公司一哥们分享过mysql主从数据库,然后说了下思想)分布式数据库要保证数据同步,首先主数据库数据改变要写二进制日志文件,从数据库开线程去读取,然后保证数据库同步.......( 下去要补习一下)

19、说下数据库隔离级别?

答:4种 然后叙述了他们要解决 脏读、不可重复读、幻读这些问题。

20、幻读怎么解决?

答:我分析了不可重复读和幻读区别,设置隔离界别为“serializable”解决幻读。

21、事物特性ACID是什么?

22、说下有哪些数据库存储引擎?

答:MyIsam、InnoDB、Memory.(我分别从他们基本特性不同说起,是否支持事务、行级锁、外键什么的,最后我特意重点分析了他们两个在索引实现上的区别)(其实我故意给自己挖个“坑”,让他问我索引,结果真挖了个坑)

23、那现在有一张表,select * from  tabel1  where A=" ",B=" " and C=" " 和select * from  tabel1  where A=" ",B=" " and D=" " 那索引应该建在哪里?

24、知道UNION和UNION ALL吗?

(只会join,这个以前没用过没在意。。。。。下去补下)

25、写个sql语句查出这个表最后10条语句?

答:(按id逆序,limit1,10)

26、你知道MVCC是什么吗?

答:不知道,好像是行级锁吗。。。(估计错了,下去要补下)

27、写个sql语句输出这个表的建表语句?

答:(以前都没在意这个,又怒送一人头.....)

28、你简历上写的优化sql语句,你怎么优化的?

答:(我在班门弄斧的感觉)where,on建索引、一些地方不用什么什么、避免全表搜索什么的等等,blabalab。。。。

29、说下堆排序、快速排序、归并排序和他们的时间、空间复杂度?

答:(说错了2个点。。。该打,补!补!补!)

30、你都知道哪些数据结构?

答:首先hash表(我想引导他问这个的然后说hashmap原理呢,结果他没问)、链表、队列、栈。。

31、(算法题)2个单链表怎么判断他们是否有公共部分?

答:说了2种。从长的那个第(m-n)个同时遍历到相同的说明相交;

或者遍历到最后一个结点,最后一个结点相同,则相交。

32、(算法题)实现一个栈,除了基本的栈操作,还有能取到栈中元素最大值,时间复杂度要求为O(1)?

答:(没想出来,不知道是不是题意我理解有误)

33、你的简历里说你是搞机器学习的?你都研究哪块?

答:贝叶斯、什么的我主要搞多示例分类

34、你说下贝叶斯思想,以及应用?

答:我说了以文本分类为例,分析了一波公式。

35、那你这些算法效果怎么样呢?

答:(吹一波牛)从90%精度提高到95%+(反正他不知道。。然后接下来牛叉的来了)

36、那你这些是有监督的学习是吧?无监督的你怎么搞?

答:我主要搞有监督学习,无监督我了解的是balabla......(我偷换概念说了一波半监督。。。现在搞数据库的都要学机器学习了???之前的面的开发测试面试官还问我“聚类”,现在是个百度er都要会机器学习了????)

37、你还有什么要问我的?

By 不苦  2017.8.9

你可能感兴趣的:(百度“DB部”内推一面小记)