腾讯北京SNG一面
写在前面
面试官超nice,以一种聊天的形式跟你交流。上午10点10左右开始,11点40结束。总的来说,基础还可以,但是有些东西的底层学的还是不够深。
问题回忆
- 自我介绍
- 怎么平衡科研与项目开发之间的时间
- 说说你在项目里做了哪些工作
- 简历里提到了代码重构,为什么重构?怎么重构的?
- 然后接下来就是关于SQLite数据库的各种问:为什么不用它了?怎么考虑线程安全的?为什么用LitePal开源框架,不用别的?LitePal底层是怎么实现的?读写是在一个线程里完成的吗?如果有巨多的同时写操作怎么办?
- Android的Kotlin语言知道吧?说说与Java的区别。我说了5点,然后面试官说再往深里说,内存?效率?
- 了解网络编程吧?说说TCP、UDP的区别,最主要的区别是什么?什么时候用这两者?为什么握手三次(而不是2次、4次)?为什么挥手四次(而不是三次)?
- 做一道题吧:有100盏灯,编号依次为1,2,3.100,电灯全部关着。现在来了100个人,第一个人把所有的灯开关按下;第二个人隔一个灯按下(2,4,6...);第三个人每隔两个灯按下(3,6,9...).第100个人隔99个灯按下(100),最后还有几盏灯,那几盏灯亮着?
- 我看你用过SVN和git,说说它们的区别。
- 知道哈希吧,说说哈希算法
- 知道哈夫曼编码吗?我说本科时学过,他说那行,给你一堆数,构建一棵哈夫曼树。。。写完后,他笑着说,这题给你出简单了。。。
- 你有没有什么想问的?(常规三问:您是哪个部门的,做什么?对我今天面试的表现,简单评价一下?对我今后的学习或者工作提些建议?)