抖音面试场景还原,最真实的面经
抖音第一面:
-
做一下自我介绍吧,简单说一下你的项目;
-
有遇到过内存泄漏吗?你们是怎么解决的?
-
Java 的基本类型有哪几个?String 是不是 java 的基本类型?String 为什么要是 final 类型的?
-
反射机制的底层实现是什么?动态呢?动态的实现原理?
-
HashMap 了解吗?说一下 hashmap 相关的一些东西?hashmap 是线程安全的吗?为什么是线程安全的?
-
concureenthashmap 了解吗?他是如何实现线程安全的?
-
你刚才说 1.8 基于 cas?cas 的 ABA 问题怎么解决?
-
说一下 JVM 的线程模型?这些区域都分别是干啥用的?、
-
说一下 Java 类加载器的工作机制?类加载在哪个域进行的?
-
说一下 Java 的线程模型?
-
violate 了解吗?它的原理是什么?violate 是线程安全的吗?
-
保证线程安全的解决方法有哪些?说一说读写锁吧,读写锁的读
-
数据库的索引有哪几种?为什么要用 B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC 机制了解不?MVCC 机制有什么问题?怎么去解决这个问题?mysql 慢语句调优做过吗?说说你是怎么做的?
-
redis 了解吗?你说说怎么用 redis 实现分布式锁?
-
spring 中 Bean 的作用域,springMVC 的 controller 是线程安全的吗?怎么去保证线程安全呢?
-
消息队列有用过吗?说说你怎么用的?
-
计算机网络了解吗?说一说 TCP 三次握手和四次挥手吧
-
time_wait 状态产生的原因是什么?,有什么危害?可以如何避免?
-
寻找旋转排序数组中的最小值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
请找出其中最小的元素。
你可以假设数组中不存在重复元素。
示例 1:
输入: [3,4,5,1,2]
输出: 1
示例 2:
输入: [4,5,6,7,0,1,2]
输出: 0
抖音第二面:
-
首先还是问项目。
-
String,StringBuffer,StringBuilder 的区别,为什么 String 是不可变的,StringBuffer 和 StringBuilder 哪个是线程安全的,他们分别适用于什么场景。
-
java 类加载过程是怎么样的,说一下 volatile。
-
并发包了解吗?假如几个线程之间相互等待,可以用哪个并发类来实现,他的原理是什么?
-
数据库慢查询优化了解哪些?
-
说一下 spring 容器的启动过程?
-
讲一下分布式锁,基于 zookeeper 实现和 redis 实现在性能上有什么差异?
-
kafka 如何保证不丢消息又不会重复消费。了解大数据相关的一些技术吗?
-
最后写了道题:跳跃游戏;
给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个位置。
示例 1:
输入: [2,3,1,1,4]
输出: true
解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。
示例 2
输入: [3,2,1,0,4]
输出: false
抖音第三面:
-
自我介绍
-
项目介绍
-
怎么管理项目成员
-
当意见不一致时,如何沟通并说服开发成员,并举个例子
-
怎么保证项目的进度
-
数据库的索引原理
-
非聚簇索引和聚簇索引
-
索引的使用注意事项
-
联合索引
-
从底层解释最左匹配原则
-
Mysql 对联合索引有优化么?会自动调整顺序么?哪个版本开始优化?
-
Redis 的应用
-
Redis 的持久化的方式和原理
-
技术选型,一个新技术和一个稳定的旧技术,你会怎么选择,选择的考虑有哪些
-
说你印象最深的美团点评技术团队的三篇博客
-
最近在学什么新技术?
-
你是怎么去接触一门新技术的?
-
会看哪些书
-
怎么选择要看的书
-
为什么要转 Java?
抖音第四面:
-
在原公司的哪一段时间是比较享受的?
-
为什么现在出来看机会呢?看什么类型的机会?
-
同事或者朋友之间如何评价你?
-
平时如何学习呢?有没有什么技巧?
-
你对我们的业务方向有了解吗?
-
你的职业规划是什么?
-
你的一些优点有哪些?
-
目前还在看哪些机会呢?手里还有别的 Offer 吗?
-
转 Java 之后有遇到哪些困难?怎么解决的?
抖音 4 面面试题完整答案(详细解析版):
从安卓转到 Java,我经历了哪些?如何才敢挑战美团?
(一)清楚自己要什么:调整心态,多给自己勇气,重新规划目标
安卓转 Java,这个想法是需要比较大的勇气的,前后我大概是纠结了一年多的时间才做出了决定,期间的心态是比较复杂和焦虑的,最主要的是“担心”,所以要想成功转到 Java,首先第一个难关就是自己的心态问题。这个过程中,我不断给自己加油打气,重新规划目标,才得以冷静且稳定下来,重新规划了自己的目标。
(二)清楚自己学什么:重新梳理知识结构,整理知识脉络
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的社区(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!