Java后端实习 base:上海

字节一面(一小时)

一、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树的使用场景:MongoDB

MySQL的隔离级别,幻读的概念

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.md

Java基础

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/27654579

Synchronized加锁机制

死锁的产生,怎么解决?讲了下死锁的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。

#实习##字节跳动##Java工程师##面经#
全部评论
算法题老哥全做出来了吗,我看了下这些题目,如果是现场写的话,132模式那道题估计是做不出来,会被pass么。
1 回复 分享
发布于 2021-02-09 12:45
老哥强啊 老哥简历写了几个项目
点赞 回复 分享
发布于 2021-02-09 11:51
wait被唤醒后会进入blocked状态 这句话时什么意思
点赞 回复 分享
发布于 2021-02-09 13:21
老哥这是假期实习还是日常实习?
点赞 回复 分享
发布于 2021-02-09 14:47
Read view如何实现数据可见性判断 这里是回答版本链和事务id吗?
点赞 回复 分享
发布于 2021-02-09 15:20
楼主,面Java岗,请问算法题可以用c++写吗?谢谢
点赞 回复 分享
发布于 2021-02-09 19:25
老哥我想问一下你在github上下载的面试资料是用什么软件打开的?我下载啦看它是md文件,只能是记事本文字方式打开,这样看不难受吗?
点赞 回复 分享
发布于 2021-02-10 11:15
几天面完的呀
点赞 回复 分享
发布于 2021-02-10 15:31
redis快和单线程没关系吗?如果是多线程的就会有上下文切换的损坏和锁的问题。
点赞 回复 分享
发布于 2021-02-11 03:05
请问部门是EA吗?
点赞 回复 分享
发布于 2021-02-11 15:33
你好,我读研也是做深度学习相关,没有java相关的项目,想问问你准备java大概准备了多久呢?打扰啦
点赞 回复 分享
发布于 2021-02-16 17:52

相关推荐

有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
评论
19
220
分享
牛客网
牛客企业服务