字节后端实习一面 + 二面凉经
字节后端,部门是深圳的飞书
一面 (5.15)
计网:
HTTP协议的报文格式
(没答出来,以为是具体的报文格式,多少个字节那些,后面再看一下,原来是 :请求方法 URL 状态码
这些,难顶)
数据结构:
- HashMap 1.7 / 1.8 的区别
追问了:hash值的计算,为什么这样优化- 并发用什么
- 如何高效进行数组拷贝(其实是System.arraycopy()的原理 ,没答好)
JVM:
- GC算法
新生代为什么采用标记-复制(我答了存活对象少,和其它两种算法用在新生代的缺点,但面试官好像不满意,有盆友能解答下吗?)- 对象进入老年代的各种情况
按年龄晋升默认阈值是多少(这个没答出来,印象比较深刻)- 字符串常量池在堆吗?
多线程:
- 常见锁机制
- ReetrantLock原理
- CAS底层有了解吗(只知道是硬件支持的,没看native方法的具体实现)
- ThreadLocal 原理
设计模式:
生产消费者( 问有没有实际用过,答没有就没有问了)
mysql:
update时什么锁 (next-key lock,但唯一性索引时降级为行锁,不过当时答错了)
场景:
大数据文件如何读取存储(拆分小文件,那怎么标记顺序?如何个别文件损坏怎么办?高可用问题)
这里感觉答得不好
算法:
有序数组转二叉搜索树 (思路对了,但没做出来。看了下是leetCode的easy,都不知道是太紧张还是太菜了)
录的音没保存,笨b操作……尽力回忆一下就是这些了
面试体验很好,面试官循序渐进,不会的也会给提示。
隔了一个小时左右,收到了HR通知,约二面。
二面(5.21)
上来自我介绍都没有……
直接算法题最大正方形 (细节写错了,用了Math.max……)
设计阻塞队列(不能用JDK的api,我写了个Thread的,这里感觉也没答好)
进程b通过某种方式,能访问进程a的内存,会有什么问题(没答好,我说会发生类似多线程的问题。拓展了一下fork的copyonwrite 技术,不过面试官不是想要这个答案)
然后问我OS是不是不太熟,就转到计网去了
- TCP如何保证可靠连接
- DDOS攻击(我答了SYN攻击,深入问了如何解决,关键点是什么)
- 快速判断某正整数是否1024的倍数 (非算法题,答了位操作,就没再问了)
- 项目相关
- redis的zset底层结构
- 觉得JVM哪个设计最核心(开放题吧,我答了内存分开(堆栈那些) + 双亲委派 )
技术无关
- 做项目,相关技术栈不会时,怎么办(我说先学项目的相关用法,再慢慢学原理)
- 解决过的技术难点
总共30+min,时间太短,面完感觉凉凉了。
隔了一天 ,5.22查状态,已结束。
心很累,不过还是自己实力不行。好好准备
#字节跳动##Java工程师##实习##面经#