抖音音乐服务端开发一、二面面经(社招)
背景:自己是2年Java开发经验,毕业后第一次尝试社招。自己负责项目是海外业务toC的站点开发(),用户量不大,PV大概8-10W
一面:5月6日
- 自我介绍
- 项目中的难点
- 我讲了自己没有学过PHP但是现在独立负责站点PHP迁Java的开发,目前在做登录鉴权的迁移,提到了Redis
- Redis为什么快?
- 项目中用到的Redis数据结构有哪些?
- string,list,hash
- 项目中的事件系统是用list来做,为什么不用kafka做,万一redis故障了,事件丢失了怎么办
- redis的备份机制
- Spring的事务了解吗?
- 只知道注解,没看过原理,过。
- 事务回滚怎么实现的呢?Hibernate,MySQL的都可以讲讲
- 还是不会。。
- 用到了分库分表,哪些业务用到了?是你设计的还是一开始就设计好了?
- 分库分库跨表查询怎么实现?(这个问题我记不清楚是不是这个意思?当时我也没太理解,最后我说了下一般这种场景我都走ES了)
- 算法题:二叉树,叶子节点之间路径长度 a1,a2,an,max(a1..an)= 直径。求二叉树最大直径。
- 用了LC543二叉树的直径来做。但是感觉和面试官题目有点不一样?面试官和我都有点懵逼,因为时间关系没有运行代码,面试官这个解法能work就结束了
- 智力题:两个人射击比赛,命中率都是50%,谁射中了就结束了,不中就换人。问先射的人有优势吗?胜率是多少?
- 这个我当时没算出来,事后请教朋友了。发现答案很反直觉。命中率是50%,先手胜率66%,命中率0%,先手胜率50%。
- 这个我当时没算出来,事后请教朋友了。发现答案很反直觉。命中率是50%,先手胜率66%,命中率0%,先手胜率50%。
- 反问环节
- 抖音音乐业务是啥?
- 用的啥语言开发
- Golang
二面:5月11日
- 自我介绍
- 项目难点:
- 项目中用了Redis,怎么用的
- 项目架构是什么样的?
- Java集合类有哪些
- ArrayList是线程安全的吗?
- 如果想让ArrayList线程安全怎么做?
- Synchronized和CAS的区别,优缺点
- 数据库设计相关:分库分表的场景
- 讲一讲用到垂直分表的数据库的数据模型?(这里我不是很理解,讲了半天也不知道方向对不对)
- 设计题:短链接服务设计。那新浪微博链接举例,长短链接要互相转换。有的短链接转长链接可能QPS会到十几万。
- 算法题:LC252会议室原题
- 这题完全没有印象,以为不是原题,结果今天一搜,CodeTop上只爆料过LC253会议室II一次,LeetCode上还是会员题T.T
- 反问环节
5月12日补充:刚刚问了下HR,确定凉了。二面表现真的太差了,而且我感觉我策略有问题,不应该第一次社招面试就给字节的。应该找几个其他公司去练练手找感觉。
二面面完感觉不是很好,没敢问面试官有没有机会三面。
算法题没做出来。数据库设计问到数据模型的时候一直不知道回答的方向是否正确。设计题之前没有准备,临场答的也不是很好,很多方面没有考虑到。
#面经##社招##字节跳动##Java工程师#