# 邓心一——面试记录 ## 菜鸟 3月9日 电话 一面 45min 1. 自我介绍 2. 讲项目,技术选型怎么做的 3. Java集合类,rehash,HashMap为什么线程不安全,举例子 4. 100首歌曲,100次播放后恰好全部放完,实现随机生成播放顺序的算法 5. 垃圾回收,jdk1.8怎么检查full GC 6. 事务四大特性,PostgreSQL与MySQL区别,数据库查询怎么优化,left join 7. 用没用过Spring 8. 10个大文件,每个1G,单机内存只有2G,找到出现频率最高的前10行。按hash划分,如果都划分到少数几个文件里,导致文件很大,怎么办 9. 怎么提升单机的并发处理能力 10. 熟悉哪些设计模式,什么是代理模式 11. 如何实现分布式Session 12. 旅行商问题,很多个城市的时候怎么办(开放性问题) ## 腾讯TEG 3月20日 现场 一面 45min 1. 自我介绍 2. 挑一个项目讲讲,画结构图 3. 常用的排序算法,时间空间复杂度 4. 二叉树,红黑树,B+树 5. I/O多路复用 6. TCP三次握手,四次挥手,状态转移 7. Socket了解吗 8. 死锁,死锁避免 9. 最长公共子串,手写DP数组递推过程 ## 腾讯TEG 3月20日 现场 二面 40min 1. 反转链表(递归没想明白,卡了二十分钟) 2. 做过最有挑战的项目 回去等通知,第二天官网查询,不合适 ## 菜鸟 3月21日 电话 二面 40min 之前没有通知,晚上七点半突然打电话过来 1. 自我介绍 2. 做过的项目 3. 作为信通专业的学生,与科班出身的同学相比,有什么优势/不足 4. Java多线程类,线程间通信,同步/异步的方法有哪些 5. 熟悉哪种数据结构,ArrayList扩容策略,HashMap,ConcurrentHashMap 6. MySQL存储引擎知道哪些,对比 7. 垃圾回收 8. 有什么问题要问 没有问算法题 ## 字节跳动 3月23日 现场 一面 50min 1. 介绍项目 2. poll, select, epoll 3. 进程和线程 4. C++了解吗,什么是虚函数 5. Golang的面向对象和C++的面向对象有什么区别 6. 介绍一下智能合约是干什么的 7. 计算字符串算术表达式,写到一半面试官问思路,在他的引导下完成了入栈\出栈的规则表。面试官把题目改成:计算只有加减法的算术表达式 8. 如果需要添加自定义运算符,怎么定义接口 9. 有什么问题想问 面试官读研究生的时候自己开发了一个计算器项目 ## 字节跳动 3月23日 现场 二面 40min 1. 自我介绍 2. 做过的项目 3. 接口和继承有什么区别 4. 在地址栏中输入url,解释整个过程 5. 是否每次输入地址都需要查询DNS 6. 如何决定DNS解析的IP,比如在美国访问百度和中国访问百度,得到的IP不同 7. 网页上的资源都是服务器提供的吗?CDN 8. 单链表每k个节点反转 9. 有什么问题要问 ## 字节跳动 3月23日 现场 三面 45min 1. 自我介绍 2. 做过的项目 3. Java多线程 4. 有某一天全部用户的登入和登出时间记录,精确到秒,求峰值的用户数,以及峰值持续的时间。手写了一个线段树,面试官看完,说,做的太复杂了 5. Java实现单例模式。面试官看完:你是不是很久没有写Java了 6. 有什么问题要问,只有三面,回去等通知 ## Hulu 3月25日 电话 一面 1h 1. 自我介绍 2. 讲项目 3. Java垃圾回收 4. PostgreSQL和MySQL 5. 微博平台数据库表如何设计,统计单个用户最近一年的微博发布数量,不要求很精确,查询时间尽量短 6. 求11的n次方,数据较大,可能会溢出 7. 除了链表的头节点,把剩余的节点反转 8. 有什么问题想问的 ## 亚马逊 3月29日 现场 一面 55min 面试前,HR先给发了一份Leadership Principle,背了一晚上 1. 自我介绍 2. 问项目 3. 判断是否是镜像二叉树 4. 已知当天游客访问博物馆的出入记录,求馆内游客数量达到峰值的时间节点(跟头条同一道题) 5. 附加题:一张白纸,总是从右往左折叠,多次折叠后展开,有的折痕朝上,有的朝下,求n次折叠后所有折痕的朝向 6. 有什么问题想问 ## 亚马逊 3月29日 现场 二面 40min 1. 介绍一个印象最深刻的项目 2. 希望把一个数据库迁移到另一个数据库,但同时App仍在使用,如何做到 3. 问了很多behavior question 4. 有什么问题想问,实习生只有两面,回去等通知 ## Hulu 4月1日 现场 二面 1h 1. 有input和ref两个数组,input数组中的数字如果在ref数组中出现,就按照ref数组中的顺序排列在最前面,否则按原本顺序排列。最好用Java Sream API实现 2. 一种数的素因子只可能是3,5,7,把这种数从小到大排序,得到3, 5, 7, 9, 15 ... 求其中第K大的数。https://www.jiuzhang.com/qa/851/ 3. 将数组中每个元素转化为在它之后第一个比它大的元素,如果没有比它大的元素,转化为-1。如[1, 4, 3, 4] -> [4, -1, 4, -1] ## Hulu 4月1日 现场 三面 1h 1. 设计并实现skip list,要求get,insert和delete方法线程安全