百度某部门内推面试小记
之所以说某部门是因为面试官说他所在部门是做数据库开发的(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