写在前面:
字节跳动是近几年发展特别迅速的互联网公司,凭借短视频平台【抖音】和自由创作平台【今日头条】等一系列以内容创造价值的应用异军突起,已经成为动摇BAT地位的一大狠角色。
同时,字节跳动公司也是出了名的出手阔绰,在校招生薪酬上的投入不菲,是互联网行业高薪资、高福利的代表。因此,字节跳动也成为广大应届生心中必须争取的大厂之一。
这次字节跳动的面试,给我的感触很深,意识到基础的重要性,这次字节共4面技术面+HR面,特分享一下这次的4面技术面真题,可能有些记不全了,但多少也能够给一些正在面试字节或计划面试字节的朋友提供帮助。
字节跳动一面
- java gc
- JVM的内存结构,Eden和Survivor比例
- java hashmap、 为什么用红黑树、红黑树邻接点为啥是8 。
- 拜占庭问题
- 一致性哈希
- 如何控制负载均衡。
- http码 302 403 。
- https 加密过程。
- 操作系统虚存实现原理,交换,覆盖区别。
- paxos算法。
- g1和cms区别,吞吐量优先和响应优先的垃圾收集器选择。
- 缓冲区满异常是什么原因。
- HTTP的长连接是什么意思。
- 堆排序的时间复杂度、空间复杂度、排序的的过程。
- MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据
- 算法 : 对一个八位数有三种操作: 加一、减一、反转 。 至少多少次操作可以把一个八位数A变成八位数B。
字节一面后,我觉得自己凉凉了,算法也不会,题目也有些不会。但还是给了二面
字节跳动二面
- 算法题: 合并区间 快排
- 如何在 Spring Boot 中禁用 Actuator 端点安全性
- BeanFactory 和 ApplicationContext 有什么区别?
- 如何让 Java 的线程彼此同步?你了解过哪些同步器?请分别介绍下。
- HashMap结构,是否线程安全?ConcurrentHashMap如何保证线程安全?
- 之前用过哪些设计模式?
- 用java自己实现一个LRU。
- 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
- TCP 粘包/拆包的原因及解决方法?
- 多线程的几种实现方式,什么是线程安全
- 非常多个线程(可能是不同机器),相互之间需要等待协调,才能完成某种工作,问怎么设计这种协调方案。
好吧,二面算法写个快排, 居然死循环了,调了10分钟没调出来, 真心感觉凉了,但是没想到居然给了三面, 我真是佛了。。
字节跳动三面
- 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
- 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
- 要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39
- 题目(盛大无线面试题):在一个字符串数组中有红、黄、蓝三种颜色的球,且个数不相等、顺序不一致,请为该数组排序,使得排序后
- 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
- 字符串排序。
- 求一个3*3矩阵对角线元素之和
- 2亿个随机生成的无序整数,找出中间大小的值
- 有1亿个数字,其中有2个是重复的,快速找到它,时间和空间要最优
- 10亿个数字里里面找最小的10个
字节三面全是算法,被面试官问懵了....
字节跳动四面
- Spring AOP的实现原理。
- Spring怎么配置事务(具体说出一些关键的xml 元素)。
- 说说你对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的。
- MVC模式,即常见的MVC框架。
- Redis的并发竞争问题如何解决,了解Redis事务的CAS操作吗。
- 如何看待缓存的使用(本地缓存,集中式缓存),简述本地缓存和集中式缓存和优缺点。
- 说说你知道的几种HASH算法,简单的也可以
- Mybatis的底层实现原理。
- 如何做限流策略,令牌桶和漏斗算法的使用场景。
- 高并发下,如何做到安全的修改同一行数据。
HR面
- 请介绍一下你自己
- 为啥离职?
- 今后的职业规划?
- 期望薪资
- 你还有什么问题问我吗?
整个面试下来,觉得面试也有运气成分,但是更多是实力体现,我们不要抱着侥幸的心理,把基础打杂事,注意说话的方法,一定洋溢着自信。注意一点是当面试官问你你有什么想问他的不,把握好机会,也会可以逆转局势。
美团一面
- 简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。
- sychronized 和 reentrantlock 实现原理
- volatile原理
- java 设计模式, jdk里用到了哪些设计模式。
- NIO 讲一讲。
- 数据库 两种引擎区别。
- 垃圾回收算法的实现原理。
- 四次挥手 越详细越好
- 当出现了内存溢出,你怎么排错。
- concurrenthashmap 实现原理。
- 二叉树 转 链表。
- netty的fashwheeltimer的用法,实现原理,是否出现过调用不够准时,怎么解决。
- MYSQL的主从延迟怎么解决。
美团二面
- gc
- java longadder
- 多线程如果线程挂住了怎么办。
- 数据库的索引数据结构 :哈希 、b 树、全文索引。
- 跳台阶
- 如果让你实现一个并发安全的链表,你会怎么做
- 设计一个秒杀系统,30分钟没付款就自动关闭交易
- 如何实现负载均衡,有哪些算法可以实现。
- 描述一个服务从发布到被消费的详细过程。
- Redis的并发竞争问题如何解决,了解Redis事务的CAS操作吗
- tomcat如何调优,涉及哪些参数。
美团三面
- fanal fanally fanalize 区别、
- JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存等。
- 不用final还可以用什么办法使得这个类不被继承、
- java初始化的顺序 :
- java锁机制、sychronnized 和 lock的区别
- 如何设计一个分布式登录系统?
- 自旋锁 怎么才能公平。
- 客户抱怨你们网站太慢,怎么排查问题?
- 导致线程死锁的原因?怎么解除线程死锁
- spring的controller是单例还是多例,怎么保证并发的安全
- 描述一个服务从发布到被消费的详细过程。
HR面
- 请介绍一下你自己
- 你为什么离开原来的公司?
- 如果公司录用你,你将怎样开展工作?
- 你为什么愿意到我们公司来工作?
- 你对加班的看法
- 你还有什么问题问我吗?
很幸运还是给我过了,二面面试官我觉得面得很专业,基本都是从浅入深的考察知识的深度,我感觉答得还可以
以上就是字节跳动/美团后端研发面试题。
既然是要面试,那么就少不了刷题,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
互联网大厂面试宝典
- Spring全家桶(实战系列)
- 算法(实战文档)
写在最后
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
以上学习资料均免费放送,最后祝愿各位身体健康,顺利拿到心仪的offer!
阿里巴巴内部PPT全集及电子文档分享
Java核心知识点整理
1000道互联网Java工程师面试题
祝小伙伴都可以拿到自己心仪大厂的offer~