双非一本非科班,以前在百度和字节实习过,此次其实没抱着什么特别大的但愿投递,没想到字节能够再给我一次机会,仍是挺开心的。java
几场面试下来,面试得自信,声音自信,给面试官一种你啥都会稳如狗的感受(实际心里慌得不行...),而后表达流畅,吐字清晰,不卑不亢,说话要有逻辑性,不能吞吞吐吐半天说不明白,得总结本身的面经,造成本身的知识体系,别人的面经写的再好也是别人的,本身刷面经总结本身不会的点整理出来才是最有用的面试
下面是面试经历所有写的是技术面试,hr面就没写了算法
整个面试过程,主要围绕算法和实习经历考察,基础知识的话不是很难。每一面的面试官都很nice,特别是三面的面试官,感受在讨论的时候没有带着面试的压力,就是朋友之间的对话。spring
抖音一面(60分钟)数据库
自我介绍编程
说下TreeMap和LinkedHashMap设计模式
TreeMap怎么按照本身想要的顺序排序数组
ConcurrentHashMap怎么取的size值缓存
怎么防止恶意请求刷接口tomcat
那ES怎么切词的呢,有写过切词插件吗
你在项目中用Redis的场景
说下Redis有哪些数据类型
Redis怎么分片的
Redis的删除策略
抖音二面(60分钟)
你但愿你处于一个什么样的工做环境
怎么根据0-5随机函数获得0-8随机函数
缓存和DB之间怎么保证数据一致性
延时消息队列怎么设计Redis的zset
zset作延时队列会有什么问题死循环轮询耗时
说下索引二八原理、提高读性能牺牲写性能的数据结构一个索引对应一颗B+树哈希、有序数组、二叉树查询的优缺点那为何不用跳表呢?
火车票区间查询怎么设计数据结构好比上海去武汉,途经南京、合肥如今要快速查询出两点之间票的库存
手撕代码,leetcode54螺旋矩阵
抖音三面(60分钟)
手撕代码,模拟微信群随机红包,输入金额、人数,返回金额数组;注意最小单位分;
聊项目,项目中的难点、模块而后还问了一些依赖模块的底层实现
项目的数据量以及QPS能达到多少
说下RPC,与HTTP的区别
你来字节最想获得什么我说但愿技术能日新月异,面试官说你别说的太虚,实实在在的说...
你有什么想问个人吗
Paypal 一面(60分钟)
聊项目,说项目中的模块、技术难点
聊下ES内部的一些机制
ForkPoolJoin相对于线程池的优势,及底层实现
详细说下CMS和G1收集器
CMS怎么处理垃圾碎片的
GC Root有哪些
String的intern方法有什么用
说下公平锁、非公平锁,为何非公平锁性能更高
CAS的三个问题及解决方案
Paypal 二面(60分钟)
说下项目中的难点
说下多线程中有哪些锁
volatile关键字原理
说下ES的底层实现
大数据Spark、Hadoop、MapReduce有了解吗
100万的数组怎么求最小的100个数字和最大的100个数字
手撕代码,leetcode378有序矩阵中第K小的元素
Paypal 三面(60分钟)
leetcode121买卖股票的最佳时机
JVM调优
详细说说偏向锁、轻量级锁、重量级锁问
新生代配合CMS收集器用的什么收集器
JVM里面会有几个栈
为何synchronized演变成重量级锁后性能会降低
kafka有没有用过
Redis怎么保证高可用主从机制,哨兵机制
Paypal 四面(60分钟)
问我机器学习和大数据这块熟不熟悉答不会面试官说那我问你些java相关的问题
Spring Boot内部怎么实现像tomcat那样直接把war包扔到某个目录而后运行起来整个项目
Spring Boot很大的jar包里面好比说有个lib目录,那这个lib若是让你去加载,怎么加载
你怎么深刻的去学习JVM的
你怎么去看的虚拟机的内存
Jconsole和VisualVM会拿到内存占用的一个趋势,那你以为什么样的趋势才是合理的
Full GC和OOM时,我怎么知道是哪一段代码引发的内存溢出和泄漏
G1收集器有没有Full GC线上服务GC日志有没有看过,G1 GC会有什么关键词
腾讯 一面(75分钟)
自我介绍
哈希和红黑树的特色和应用场景
说下time wait,出如今哪一端,什么缘由会致使time wait过多,怎么解决
TCP和UDP的区别
用过什么微服务的框架
项目中怎么实现负载均衡的NginxF5
为何一年不到就出来看机会
为何不用MySQL的分库分表,直接用ES
ES索引里面都存储了哪些字段
调度平台模块是怎么调度的,什么时间调度,让你设计怎么实现
腾讯 二面(60分钟)
ES的倒排索引
了解分布式事务吗
MySQL的事务隔离级别
MySQL的主从备份机制
数据库的表结构设计有哪些经验
数据库的分库分表
关键帧提取的原理
限流怎么实现的
DB和缓存怎么保证数据的一致性
腾讯 三面(40分钟)
怎么保证缓存和DB之间的数据一致性
缓存穿透、缓存击穿、缓存雪崩区别及解决方案
怎么预估热点key,怎么解决热点key问题
缓存的淘汰策略
CPP会吗
腾讯 四面(170分钟)
哈希存在的问题
Redis有序集合底层实现
为何用跳表不用红黑树
MySQL索引为何用B+树不用红黑树
zset有什么应用场景
为何用ES不用MySQL
项目的数据规模
为何ES和MySQL都是基于磁盘,ES的查询性能要高
面试官让我共享屏幕讲项目,边讲边问
面试本质是一个自我优点展现的过程,不要把面试变成面试官问一句本身回答一句,主动抛出一些可能的点等面试官来问,好比我基本都被问到了DB和缓存之间怎么保证数据的一致性,其实都是我本身刻意往上引的,好比面试官说,你用过Redis吗,你能够说,用过,通常用来做为缓存配合MySQL提升性能,须要注意它们之间数据的一致性问题(不要太刻意,本身把握分寸),面试官大几率会接着问你是怎么保证的
如下我最新总结的大厂Java必考题范围和答案,内容点包含有java集合,jvm,并发编程,spring,mybatis,springMVC,微服务,Dubbo,netty,网络,zookeeper,kafka,rabbitMQ,readis缓存,数据库,设计模式 等一线大厂互联网大厂常问到的面试真题,感兴趣的朋友,能够点击这里,暗号4399!
获取方式:点击这里,暗号4399!
不要眼高手低,很多小伙伴看面经以为本身啥都会,可是本身会与面试过程当中能清晰有层次的说出来是两回事,而且本身会到什么程度,有个说法很好,判断你是否是真的掌握一个知识的一个点在于你能不能经过通俗易懂的语言教会一个彻底没有相关知识背景的人,若是这能够作到,那对知识的掌握必定是融会贯通的,面试过程当中必定能够信手拈来。好比volatile关键字的原理,能不能说出点面试官眼前一亮的东西,和别的同窗走马观花不同的感受,这仍是不容易的