字节一面(一小时)一、3道算法题上来3道算法题,让选一道,做的快让你在做一道1、打家劫舍 https://leetcode-cn.com/problems/house-robber-ii/2、在字符矩阵中判断能否组成一个字符串? 用深度遍历3、最大连续子串https://leetcode-cn.com/problems/zui-chang-bu-han-zhong-fu-zi-fu-de-zi-zi-fu-chuan-lcof/MySQL索引结构,InnoDB的聚簇索引和普通索引。回表的概念联合索引的存储情况,最左匹配原则。B+树相比于B树的优点。B+树好于B树,那么B树有哪些使用场景?B树的使用场景:MongoDBMySQL的隔离级别,幻读的概念MySQL的默认隔离级别是RR,如何解决幻读的问题?间隙锁。MVCC的工作原理。Read view如何实现数据可见性判断?Redis为什么这么快?主要原因还是存储在内存中,数据操作快。说了单线程不是Redis快的原因。Redis 6.0以后推出了多线程版本。还一个原因是key-value键值对数据操作简单。Redis的基本数据类型。String、List、Hash、Set、Zset。Zset的底层实现:跳表。什么是跳表?https://www.jianshu.com/p/dc252b5efca6如何保证数据库和Redis的数据一致性,先更新数据库再删除缓存。先删除缓存再更新数据库这两个方法分别存在什么问题?如何解决?这个当时没想出来可以参考:https://gitee.com/shishan100/Java-Interview-Advanced/blob/master/docs/high-concurrency/redis-consistence.mdJava基础Object类下面有哪些方法 猝不及防,忘了 只说了hashcode,toString,wait。应该有(object构造方法、getClass、hashCode、equals、clone、toString、notify、notifyAll、wait、finalize(JDK9遗弃))HashMap的put过程。线程池7大核心参数,线程池执行任务的过程。字节二面(45分钟)两道算法题盛水最多的容器:https://leetcode-cn.com/problems/container-with-most-water/132模式:https://leetcode-cn.com/problems/132-pattern/Object类有哪些方法?线程有哪些状态?wait和block的区别?Wait超时后会怎样?其实wait的线程被唤醒后其实会进入block的状态去抢锁,而国内大部分博客都画成唤醒后进入就绪状态。我当时说这个观点,面试官也疑惑了一下,然后解释了这个原因。因为wait是在同步代码块中运行的,所以被唤醒后会要去抢锁,抢到锁才会进入就绪状态,这不乏是个小亮点。可以看下老外的这张线程状态转换图https://www.zhihu.com/question/27654579Synchronized加锁机制死锁的产生,怎么解决?讲了下死锁的4个必要条件哈希值有什么用?HashMap的put过程,hashcode方法为什么要&数组长度的length-1,如果重写hashcode方法都为1会怎么样?一直会发生哈希冲突,全部结点在那一个下标下形成链表,然后转化为红黑树。计算存储下标时&操作比%操作的好处?长度采用2^n的好处?HTTP有哪些请求方法,GET、POST、PUT、DELETE、TRACE、HEAD。分别代表什么意思Cookie和Session的区别,什么是session共享?进程、线程、协程进程间通信方式,分别解释了下实现的原理和存在的问题。自己目前有什么打算?Hr面试(20分钟)实习时间。为什么考研?读研期间的经历?为什么想来字节?反正就是聊天式的面试。总结下吧:字节总体面试下来还是十分舒服的,hr小姐姐非常亲切,第一个面试官我在回答问题和讲解代码的时候,都会肯定下,不打断你让你一直讲。第二个面试官稍微有点高冷。然后自己在回答问题的时候尽量把自己知道的都讲出来,可以稍微引导下面试官往自己知道的知识问,比如问我redis为什么快的时候?我会提到单线程并不是redis快的原因。接着他会问我为什么?我说wait被唤醒后会进入blocked状态?他也会问下为什么是这样?非常感谢guide哥整理的面试资料,非常全:https://github.com/Snailclimb/JavaGuide最后祝小伙伴都能成为offer收割机,拿到心仪的offer。
暂无评论,快来抢首评~
相关推荐