少年帮|本以为简历都过不了,123+HR面直接拿到意向书,渣硕试水字节跳动( 二 )


后面面试官给讲了一下思路 。 从数组长度向下遍历进行查找
反问环节 , 问了问面试的表现 , 被告知算法能力比较薄弱 , 以为就此凉凉 。。。 然后一面说这边可以让你进入下一环节 , 这边大概需要等5到10分钟左右第二面二面考察的是技术深度面试 , 面试时间大约50分钟左右
自我介绍博客已经开源了么 , 用的什么开源协议 , 博客的用户多么?看你博客中用到了Solr和ElasticSearch , 谈谈它们的原理 , 以及倒排索引?对于Solr或者ES里面用到的一些中文分词器有了解过么?谈谈那些技术栈 , 你比较熟悉的是那些 , mysql和redis?聊聊MySQL的底层索引结构 , InnoDB里面的B+Tree?BTree和B+Tree的区别聊聊MySQL索引的发展过程?是一来就是B+Tree的么?从没有索引、hash、二叉排序树、AVL树、B树、B+树聊 。 谈谈MySQL里面的事务 , 说说什么是事务?MySQL里面有那些事务级别 , 并且不同的事务级别会出现什么问题?谈谈可重复读和幻读的区别?MySQL中如果使用like进行模糊匹配的时候 , 是否会使用索引?一定不会用么?(索引这块了解的太少了 , 二面结束后 , 回去恶补了一下)谈谈Redis吧 , 在你项目中的具体使用?谈谈Redis如何实现分布式锁?蘑菇博客是否存在缓存不一致的情况 , 你是如何解决的?谈谈Redis中缓存穿透的问题 , 以及解决的方法?还有其它解决缓存穿透的方法么?布隆过滤器有了解过么?Redis中大面积的缓存失效 , 然后请求全部打到数据库 , 有什么解决方法?如果出现一些热点数据 , 比如明星之间的新闻 , 造成大量的吃瓜用户涌入后台 , 但是服务器还没有缓存对应的数据 , 这样可能造成数据库宕机 , 如何避免这样的情况?聊聊JVM的组成结构?谈谈垃圾收集原理?以及垃圾收集算法复制算法和标记整理算法?为什么不在新生代使用标记整理算法?或者在老年代使用复制算法?有了解过Volatile么?谈谈你对Volatile的理解Volatile如何保证可见性的?以及如何实现可见性的机制 。 如果大量的使用Volatile存在什么问题?谈谈操作系统的线程 , 以及它的状态线程和进程的区别?为什么要提出多线程应用 , 而不是多进程应用呢?Linux你平时都有用到什么命令呢?如果我需要查看端口号或者进程号 , 你会使用什么命令?谈谈你做的另外一个项目吧?稍微介绍一下来吧 , 写个题目试试#链表的两两翻转#给定链表:1->2->3->4->5->6->7#返回结果:2->1->4->3->6->5->7毕业时间是什么时候?现在面试的是实习岗位么?反问环节:追问面试表现?告知Redis这块掌握的还可以 , 但是MySQL这块显得不足 。 问后续的安排 。 第三面应该是Leader面 , 面试时间大概50分钟
自我介绍好奇一下 , 用码云的人应该不多吧 , 为什么没有用Github?你英文水平怎么样?聊聊开源项目吧?我看这项目已经有800多赞了 , 你在这开源项目主要做了什么工作?我们找些点来聊聊吧?先从ES和Solr开始 , 你们这两个都有在用么?SQL的方式实现搜索 , 你是怎么做的呢?使用like匹配的时候 , 会不会查询非常慢呢?ES和Solr的底层都用了lunce , 谈谈你对lunce的理解?lunce里面也有用到分词器 , 比如一些新的词“新冠肺炎” , 它能不能做到很好的划分呢?除了人为的维护词库 , 来解决最新词语的分割 , 你还有知道其它什么更好的方法么?你有了解过其它什么开源的分词库么?谈谈字典树?Solr和ES底层都用了Lunce , 那他们两者有什么区别呢?Solr所谓的集群环境和ES所谓的分布式环境 , 它们之间有什么区别呢?上面你有提到微服务 , 你有了解过微服务是个什么样的理念么?你现在的微服务 , 也是打包成多个jar包 , 部署在一个服务器上 , 如果服务器出现问题了 , 也会造成服务不可用 , 有没有好的解决方法呢?聊聊服务的注册与发现?服务的注册和发现 , 其实依赖于一个注册中心的概念 , 会不会出现注册中心挂掉 , 而导致整个服务不可用 , 有没有什么好的解决方法呢?有了解过Zookeeper整个的选举过程么?谈谈Zookeeper的分布式一致性协议?聊聊索引 , 我给你写个表 , 看看下面的查询语句 , 走了那些索引?createtable'tb'(idint,namevarchar(64),statusint,createtimetimestamp,PRIMARYKEY(`id`))--创建了三个普通索引createindexindex_nameontable('name')createindexindex_statusontable('status')createindexindex_createtimeontable('createtime')--给定SQL语句 , 判断下面查询会用到几个索引select*fromtbwherestatus=1andname="zhangsan"上述SQL用到了几个索引?分别是那几个?有了解过InnoDB底层的索引结构么?通过两个索引查询出来的结果 , 会进行什么样的操作?交集 , 并集?如果你在MySQL中遇到一些慢查询 , 有什么解决方法么?谈谈explain?执行的explain后 , 出现的那些字段 , 能够帮助我们呢?我看你的博客里面 , 关于Redis还有好几篇文章 , 我们可以聊一聊你对Redis的理解?为什么Redis能够保持这么高的并发响应?有了解过IO多路复用技术是个什么样的原理通过一个线程 , 同时连接多个线程不会存在多个线程切换么?(感觉进坑了 。。 )当你通过jedis进行连接redis的时候 , 已经和一个进程连接了 , redis还能够和其它的进程进行通信么?Redis每秒能够处理处理十万请求 , 如果按照你上面说的 , 那说明它每次交互只在1/十万秒内完成?有了解过Redis的源码么?MySQL用了B+Tree , Redis中的SortSet内部用了跳跃表 , 他们之间有什么差别?为什么MySQL不用跳跃表 , 或者是Redis不用B+Tree呢?感觉自己编码功底怎么样?那我们先聊聊操作系统的知识再给你一道题吧 。 在操作系统中 , 有高速缓存 , 主存 , 虚拟内存 , 外存 , 有知道它们之间有什么样的关系 , 以及它们的作用是啥?对它们来说 , 肯定会存在一个问题 , 就是当我们的主存满了 , 或者虚存满了 , 那么需要存在一个换页操作 , 你知道有那些换页算法么?我们来聊聊LRU?叫你手写一个LRU算法谈谈你的思路?用链表的方式实现 , 时间复杂度是O(N) , 有没有什么方式能够让它是O(1)的时间复杂度呢?OK , 思路还可以 , 那你手写一个LRU算法吧?(双向链表+Hash?)反问环节:问了下组织架构 , 以及python和go在项目中的使用 。 然后问了下面试的表现 , 答:代码写的不算好吧 , LRU写成这样我觉得是不太合适的 。 (心碎的声音 , 感觉到凉凉的气息...) , 结束后以为面试已经结束 , 后面在准备关页面的时候 , 面试官说等一下 , 还有同学和我聊?HR面花10来分钟做个简单的沟通