字节跳动抖音电商后端(一面二面三面)
一面
注:面试官特别友善,面试体验特别好
-
自我介绍
-
实习时间挺长?
-
数组和链表的区别?
-
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)
-
数学题:参加一个游戏节目,你是参赛者,主持人会在你的前面放三个盒子,其中一个盒子藏奖品,你选中一个盒子之后,主持人会开启另外两个中没奖品的一个盒子,剩下一个盒子。请问现在有机会让你换成另外一个盒子,你换盒子和不换盒子的中奖概率是怎么样的?
-
你有什么问题要问我吗?