字节Java一面面经
面试官人很友好,我每次讲两句有关自己的事情他都会笑,是个善良的xd没毛病。
上来我在自我介绍的时候谈到了项目问题,有关项目第一句就是我用MySQL,结果我给他讲了得20多分钟的MySQL。
说一下对数据库索引的理解。
索引都有哪几种?
为什么b+树好?
innoDB和MyISAM索引有什么区别?
什么是幻读?
什么隔离级别会出现幻读情况?
Mysql是如何解决幻读的?
MVCC大致解释一下,我还给画了张图,大概说了说roll back pointer, transaction number 和 read view的事情
了解回滚用到的日志吗?我说我知道有redo log和undo log,具体没太深入了解。
数据库有什么锁?
间隙锁大致解释一下?
主从复制可以解释一下吗?这个真不会,我说就是master slave读写分离,他还问我为什么要读写分离,我说可能因为网站都是以查询为主,所以两个功能分开各干各的效率高吧。
然后让我写一条sql,100多万条数据,每一次查100行,伪码写出来。limit index 100 do while就好了。
DNS是什么?
DNS结构是什么?
输入一个url之后DNS是如何工作的?
用没用过redis?我说我正在学
MyBatis是如何做到把SQL和Mapper对应起来的?
MyBatis的#和$有什么区别?
二叉树蛇形层序遍历,输入一个TreeNode root, 输出List<List<Integer>>,用Deque来BFS,很简单。
有什么想问的吗?我说我想问三个问题,他说100个都没事。
最后告诉我后续安排HR会主动联系,然后在我表示感谢以后飘然离去。
求个二面
#面经##校招##字节跳动##Java工程师#