字节跳动抖音电商后端(一面二面三面)

一面

注:面试官特别友善,面试体验特别好

  • 自我介绍

  • 实习时间挺长?

  • 数组和链表的区别?

  • ArrayList的扩容是怎么实现?

  • 介绍一下hashmap,介绍一下put操作做了哪些步骤?(问了细节)

  • hashmap判定重复是==还是equals

  • hashmap1.7和1.8?

  • hashMap是线程安全吗?介绍一下concurrentHashMap?如何保证线程安全的同时保证吞吐量?

  • synchronized在jdk1.8做了哪些优化?

  • synchronized为什么要设计成可重入?

  • volatile的原理?解决什么问题?

  • 介绍一下JMM

  • Lock接口?了解过AQS嘛?

  • ReentrantLock可以做公平锁吗?怎么实现公平锁?

  • 算法题:用栈实现队列(Leetcode)其中栈的数据结构也自己实现

  • String s1 = “abc” String s2 = new String(“abc”)两个语句分别创建了几个对象?对象存储的位置?s1和s2相等吗?执行顺序先是第一条再是第二条创建几个对象?

  • interface和abstract的区别

  • abstract抽象类里面一定要有抽象方法吗?

  • interface可以写方法的实现吗?

  • jvm的类加载机制?

  • 双亲委派机制?

  • TCP属于网络的哪一层?

  • TCP是面向连接的?为什么三次握手?

  • TCP怎么保证可靠传输?

  • 滑动窗口的大小由哪一端来控制?server为什么要控制?client为什么要控制?

  • 拥塞控制知道吗?

  • mysql联合索引一道题目:建立了联合a,b,c。

    a,b,c会走索引吗?a,c会走索引吗?
  • 算法题:无重复字符的最长子串(leetcode)

  • 你有什么问题要问我吗?问了一下业务?问了一下什么语言?


二面

  • 自我介绍
  • 介绍一下springMVC和Springboot和Mybatis
  • springMVC的一些细节
  • springboot的作用
  • 介绍几种排序算法,时间复杂度,空间复杂度
  • 桶排序
  • 快速排序
  • 算法题:实现快速排序
  • 堆排序怎么实现
  • 数据结构中图的表示有哪些
  • 哪种情况下用矩阵、哪种情况下用邻接表
  • 求两个点之间的最短距离?介绍一下迪杰斯特拉算法?
  • 介绍一下事务?
  • 介绍一下三大范式?
  • 进程和线程的区别
  • 进程调度有哪几种方式?有哪几种评价方式?
  • 介绍一下虚拟内存?为什么使用虚拟内存?(两种优点)
  • 算法题:对无序的链表进行排序(不可以使用Java中的容器)


三面

  • 自我介绍

  • 学校里学的哪些课程比较受用?

  • 一个指令从软件到操作系统到硬件执行?整个过程做了哪些?

  • 启动一个应用,监听一个端口对外服务?启动服务以后,本身没有问题,但是客户端连不到服务?如何诊断?

  • 一个url从输入到页面解析的过程?

  • DNS用什么传输协议?

  • 用户如何找到DNS服务器?

  • DNS服务器是怎么知道IP地址的?如何知道去哪里找DNS服务器?

  • JDK和JRE的区别?

  • 类加载的机制?

  • 一道问题,有关于Java的值传递

  • 手撕sql

    employee(id, name, salary)

    office(id, city)

    写一个sql,输出每个城市收入最高的员工的名字?后面改成每个城市收入最高的收入?

  • 算法题:下一个排列(Leetcode)

  • 数学题:参加一个游戏节目,你是参赛者,主持人会在你的前面放三个盒子,其中一个盒子藏奖品,你选中一个盒子之后,主持人会开启另外两个中没奖品的一个盒子,剩下一个盒子。请问现在有机会让你换成另外一个盒子,你换盒子和不换盒子的中奖概率是怎么样的?

  • 你有什么问题要问我吗?


#面经##字节跳动##Java工程师##实习#
全部评论
感觉一面纯八股文,二面感觉也很简单,三面有些水平吧
3 回复 分享
发布于 2021-04-11 14:06
synchronized在jdk1.8做了哪些优化?? 这个答案是啥阿, 我搜了一下博客, 都是说1.6的变化, 1.8synchronized好像没啥大变换呀
2 回复 分享
发布于 2021-04-11 16:54
妈呀,羡慕机会
2 回复 分享
发布于 2021-04-11 12:30
楼主太强了
2 回复 分享
发布于 2021-04-11 10:09
😆 爱了爱了 这个难度
1 回复 分享
发布于 2021-04-11 15:21
想问一下客户端连不到服务如何诊断是怎么答的?😂
1 回复 分享
发布于 2021-04-11 15:15
厉害
1 回复 分享
发布于 2021-04-11 12:13
数学题解答:之前抽中的概率是1/3,当主持人排除一个空之后,另一个概率就提高到了2/3,所以肯定得换。
点赞 回复 分享
发布于 2024-04-08 17:31 四川
楼主,操作系统有什么网课推荐吗
点赞 回复 分享
发布于 2021-04-12 13:42
请问是日常实习吗
点赞 回复 分享
发布于 2021-04-12 00:56
请问楼主是研一吗?有项目吗?😁
点赞 回复 分享
发布于 2021-04-11 23:35
请问大佬 笔试A多少能面试?
点赞 回复 分享
发布于 2021-04-11 22:13
问下楼主,字节不都是普遍写go吗,还会问java的吗😂
点赞 回复 分享
发布于 2021-04-11 16:37
一般
点赞 回复 分享
发布于 2021-04-11 15:05
三面的数学题楼主怎么答的
点赞 回复 分享
发布于 2021-04-11 14:47

相关推荐

02-07 12:06
已编辑
华侨大学 测试开发
最近看到很多 92 的,甚至是硕士,开始往测开赛道卷,说实话有点看不懂。先把话说清楚,大厂里的测开,绝大多数时间干的还是测试的活,只是写点自动化脚本、维护测试平台、接接流水线,真正像开发一样做系统、做架构、做核心平台的测开少得可怜,基本都集中在核心提效组,而且人很少,外面进去的大概率轮不到你,我想真正干过人都清楚。很多人被洗脑了,以为测开也是开,和后端差不多,只是更简单、更轻松、还高薪。现实情况是,测开和开发的职业路径完全不一样。开发的核心是业务和系统能力,测开的核心是稳定性和覆盖率,前者是往上走,后者天花板非常明显。你可以见到很多开发转测开,但你很少见到干了几年测开还能顺利转回开发的。更现实一点说,92 的高学历如果拿来做测开,大部分时间就是在做重复性很强的杂活,这种工作对个人能力的放大效应非常弱。三年下来,你和一个双非的,甚至本科的测开差距不会太大,但你和同龄的后端、平台开发差距会非常明显。这不是努不努力的问题,是赛道问题。所谓测开简单高薪,本质上是把极少数核心测开的上限,当成了整个岗位的常态来宣传。那些工资高、技术强的测开,本身就是开发水平,只是挂了个测开的名。普通人进去,99% 做的都是项目兜底型工作,而不是你想象中的平台开发。测开不是不能做,但它绝对不是开发的平替,也不是性价比最优解。如果你是真的不想做开发,追求稳定,那测开没问题。但如果你只是觉得测开比后端容易,还能进大厂,那我劝你冷静一点,这只是在用短期安全感换长期天花板。有92的学历,如果你连测开这些重复性工作都能心甘情愿接受,那你把时间精力用在真正的开发、系统、业务深度上,回报大概率比卷测开要高得多。想清楚再下场,别被岗位名和话术带偏了,就算去个前端客户端也是随便占坑的,测开是一个坑位很少赛道,反而大面积学历下放,不用想也能知道会是什么结果,我想各位在JAVA那里已经看到了
小浪_Coding:工作只是谋生的手段 而不是相互比较和歧视
点赞 评论 收藏
分享
评论
26
326
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务