字节商业变现日常实习(已OC)
一面
- 基本数据类型有哪些,对应占字节数(可恶的short忘了)
- 对应的数据类型的取值范围,比如int类型,对应的取值范围如何计算的
- Collection类的划分
- HashSet如何去重?HashMap的key如何做到唯一的
- 链表和红黑树的时间复杂度,红黑树引入的目的
- 红黑树的平衡和平衡二叉树的平衡区别,以及红黑树的平衡实现(红黑树直接送走)
- TCP的三次握手,标志位以及序列号的变化
- SYN为什么是随机值,有什么作用,SYN除了握手还有什么用
- TCP和UDP的区别
- Java如何并发控制(我直接AQS)
- 可重入锁是什么,ReentrantLock实现可重入
- synchronized关键字的锁流程
- 偏向锁和轻量级锁的具体获取锁流程,如何置换MarkWord的
- JVM内存区域分布
- JVM栈存了哪些东西,栈中的元素什么时候越来越多什么时候越来越少(栈帧的增减)
- StackOverFlow异常如何发生的
- new 一个对象在堆中的历程,new对象会在哪个区上分配
- 新生代的细分,复制算法的实现,新生代晋升老年代的机制
- 算法:股票的最大利润,只买卖一次(字节居然不出hard,秒了)
二面
- 项目相关(balabala~~)
- RocketMQ保证最终一致性,事务消息的实现机制
- JVM内存划分,每个部分具体什么作用
- 哪些区域可能发生OOM,发生OOM的原因有哪些
- Java用来监控内存的自带工具
- 联合索引,最左原则匹配
- 一条SQL的执行过程
- 假如有(a,b,c)联合索引,c,b,a的顺序能用到索引吗,sql执行之前是否将c,b,a的使用顺序改为a,b,c
- Redis如何实现过期删除(我答定时器和主动判断对比过期时间,忘了~~,面试官引导我自己实现)
- 算法:从0撸个LRU(当然Map啥的还是用现成的)
三面
- 项目(~~)
- 对Mybatis了解,ResultMap和ResultType的区别,怎么防止SQL注入
- Mybatis缓存机制
- SQL题(join忘了~~)
- Shell脚本用的多吗,如何验证线上服务是OK的,运行OK的
- 查看log日志用什么命令快速定位
- 技术如何学习
- RocketMQ为何使用自研注册中心,而不使用zookeeper等成熟的注册中心
- CAP概念,ZK保证的是什么
- 算法:非递归二叉树深度
三面才40分钟不到,慌得一批
==============总结================
一面后5分钟二面,第二天三面后两小时Hr面,好家伙~~~
面试算法全都不难,真是神奇不像字节的风格了
只要写了实习项目就问项目以及公司内部框架原理,懂了下次实习一定卷