Java教程

字节跳动高级Java开发面试,面试必备

本文主要是介绍字节跳动高级Java开发面试,面试必备,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
# 一面问题:MySQL+Redis+Kafka+线程+算法 * mysql知道哪些存储引擎,它们的区别 * mysql索引在什么情况下会失效 * mysql在项目中的优化场景,慢查询解决等 * mysql有什么索引,索引模型是什么 * B-树与B+树的区别?为什么不用红黑树 * mysql主从同步怎么做 * 乐观锁与悲观锁的区别? * binlog日志 * redis 持久化有哪几种方式,怎么选? * redis 主从同步是怎样的过程? * redis 的 zset 怎么实现的? * redis key 的过期策略 * hashmap 是怎样实现的?为什么要用红黑树,而不用平衡二叉树?为什么在1.8中链表大于8时会转红黑树?HashMap为什么线程不安全的? * 如何实现线程安全的hashmap? * select 和 epoll的区别 * http与https的区别,加密怎么加的? * raft算法详细讲解 * Kafka 选主怎么做的? * kafka如何保证生产与消费都是同步的? * kafka 怎么保证不丢消息的 * redis如何保证高可用 * 算法:剪绳子(贪心或递归解决) * 算法:给前序和中序遍历,重建二叉树 # 二面(volatile+线程+并发+算法+设计模式) * 自我介绍 * 讲讲项目(项目没啥亮点,直接问基础) * volatile作用?底层实现?禁止重排序的场景?单例模式中volatile的作用? * 如何构造线程池,它的参数,饱和策略? * 公平锁和非公平锁区别?为什么公平锁效率低? * 线程都有哪些状态? * 线程、进程、协程的区别? * 同步队列器AQS思想,以及基于AQS实现的lock,。 * 并发工具类CountDownLatch、CyclicBarrier、Semaphore介绍 * Execuors类实现的几种线程池类型,最后如何返回? * 手写单例模式 * 手写消费者生产者模式 * 算法:反转单链表 * 算法:给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 # 三面 这一面,没问啥东西,主要聊人生,和未来3年的规划。。。。。。 # 第二个是字节跳动 ![最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?](http://www.www.zyiz.net/i/li/?n=2&i=images/20210705/1625461102215293.jpg) # 一面:算法+数据库+事务+网络 * 自我介绍 * 项目介绍(没亮点,还是问基础) * 堆排序的原理及时间复杂度,是否稳定,最坏及最坏场景。 * Object类都有哪些方法? * DNS解析的过程/浏览器输入一个url,敲下回车后网络的全过程 * HTTP和HTTPS的区别 * UDP怎么实现可靠传输 * 介绍下https,是如何加密的,加密算法 * 数据库索引的优缺点,以及什么时候数据库索引失效 * 事务的隔离级别? * 数据库的脏读,不可重复读,幻读 * 算法:接雨水:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 * 算法:N皇后 # 二面:Kafka+redis+算法 * Kafka的特性? * Kafka中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么? * 消费者重平衡(高可用性、伸缩性) * 哪些情景下会造成消息漏消费? * 如何保证消息不被重复消费(幂等性) * KafkaConsumer是非线程安全的,那么怎么样实现多线程消费? * Kafka生产者客户端中使用了几个线程来处理?分别是什么? * 消费者与生产者的工作流程: * topic的分区数可不可以增加? * 算法:二叉树中的最大路径和 * 算法:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 # 三面:Redis+Spring+Dubbo+算法 * redis的Zset怎么实现的? * sentinel和cluster区别和各自适用场景 * redis cluster集群同步过程 * redis单线程为什么快? * mybatis一级缓存和二级缓存 * spring如何解决循环依赖? * spring AOP的原理。 * spring的生命周期。 * Dubbo服务暴露和引用过程,负载均衡策略,容错机制在哪里实现的源码 * 项目中遇到了哪些问题。(抱歉,我的工作就是增删改查,没接触过相关问题) * 算法:二叉树的镜像 * 算法:从上到下打印二叉树 # 最后瞄一眼腾讯 腾讯这三面下来问的也不少,自求多福吧。 ![最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?](http://www.www.zyiz.net/i/li/?n=2&i=images/20210705/1625461103240517.jpg) # 一面 * 如何设计一个秒杀系统? * 一天爬一千万条文章,怎么做设计?怎么并行协调?100 台服务器怎么尽可能负载均衡? * 有用过短域名服务吗,能说一下吗? * 微服务的特点,如何实现服务发现和负载均衡 * 如何排查线上问题?(背过,没排过) * 贝叶斯的概率学原理 * 负载均衡的加权轮询算法怎么实现 * 如果用户量大幅度上涨,如何优化? * paxos算法(这个算法太难,学的时候就没太理解) * 平时都看什么博客,最近看什么书了 # 二面 * 自我介绍 * 项目介绍 * redis的5种类型,及其实现原理 * 如何使用redis的Zset实现延时队列? * redis如何实现高可用? * redis缓存穿透、缓存击穿、缓存雪崩 * 布隆过滤器的实现 * 如何保证mysql与redis的双写一致性? * 负载均衡算法有哪些? * 服务发现是怎么实现的? * 熔断是怎么实现的? * 算法:连续子数组的最大和 * 讲讲分布式CAP和BASE? * 什么是强一致性? * 分布式事务的解决方案? * TCC(两阶段型、补偿型) * id生成器如何实现? * 如何判断一个图是否有环? * 一致性Hash算法,及其应用 * 背包问题 # 三面 * 自我介绍 * 项目介绍 * redis的zSet如何实现? * redis持久化机制。 * redis的Hash类型讲解,渐进式rehash。 * HashMap原理,一个put操作,都有什么流程? * nginx有自己配置过吗(这个是我唯一手动操作过的,这个不是背的) * nginx的使用场景。 * 什么是分布式,什么是集群,区别是什么? * 在基于dubbo的分布式环境中,一般将超时timeout设置在provider还是consumer? * dubbo中负载均衡的策略有哪些? * 接口的异步调用?如何设置?运行效果? * 谈谈基于dubbo的系统中consumer集群的解决方案? * mysql是集群还是单节点?最大连接数,最大的表中数据量大约是多少? * mysql主从复制主要有哪几种模式? * mysql索引,B+树,为什么不用红黑树? * 数据库垂直与水平拆分怎么做。 * 分布式session设置 * IO、BIO、NIO,阻塞与非阻塞的区别? * 分布式接口的幂等性设计(不能重复扣付款) * 算法:二叉搜索数与双向链表(这个懵了) * 算法:最长不含重复字符的子字符串 * 算法:手写快速排序、插入排序、冒泡排序,并分析时间复杂度和空间复杂度,它们的稳定性 # ### 最后 **面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典** **想获取个人高清面试题的[可以戳这里免费领取](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)及个人也准备了很多面试题含答案的资料供你刷!** * Java核心知识整理 ![2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多](http://www.www.zyiz.net/i/li/?n=2&i=images/20210705/1625461103765156.jpg) Java核心知识 * Spring全家桶(实战系列) ![2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多](http://www.www.zyiz.net/i/li/?n=2&i=images/20210705/1625461103140167.jpg) * 其他电子书资料 ![2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多](http://www.www.zyiz.net/i/li/?n=2&i=images/20210705/1625461104207684.jpg) **Step3:刷题** 既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。 **以下是我私藏的面试题库:** ![2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多](http://www.www.zyiz.net/i/li/?n=2&i=images/20210705/1625461104384681.jpg)
这篇关于字节跳动高级Java开发面试,面试必备的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!