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