zoukankan      html  css  js  c++  java
  • 闭关苦修半年,最终靠着这份面试题,我成功拿到了阿里的offer!

    前言

    我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等。也是有些辛苦。终于是在前不久拿到了阿里的offer,定级P7。

    我现在也来写面经,把我还能记住的,写下来,反馈给大家:

    一面 :

    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的作用?

    如何构造线程池,它的参数,饱和策略?

    公平锁和非公平锁区别?为什么公平锁效率低?

    线程都有哪些状态?

    线程、进程、协程的区别?

    同步队列器AQS思想,以及基于AQS实现的lock,。

    并发工具类CountDownLatch、CyclicBarrier、Semaphore介绍

    Execuors类实现的几种线程池类型,最后如何返回?

    手写单例模式

    手写消费者生产者模式

    算法:反转单链表

    算法:给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。

    三面:

    这一面,没问啥东西,主要聊人生,和未来3年的规划。

    下面为大家附上我在朋友那要到的字节跳动以及京东的面试题

    一面:

    自我介绍

    项目介绍(没亮点,还是问基础)

    堆排序的原理及时间复杂度,是否稳定,最坏及最坏场景。

    Object类都有哪些方法?

    DNS解析的过程/浏览器输入一个url,敲下回车后网络的全过程

    HTTP和HTTPS的区别

    UDP怎么实现可靠传输

    介绍下https,是如何加密的,加密算法

    数据库索引的优缺点,以及什么时候数据库索引失效

    事务的隔离级别?

    数据库的脏读,不可重复读,幻读

    算法:接雨水:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

    算法:N皇后

    二面:

    1. Kafka的特性?

    2. Kafka中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?

    3. 消费者重平衡(高可用性、伸缩性)

    4. 那些情景下会造成消息漏消费?

    5. 如何保证消息不被重复消费(幂等性)

    6. KafkaConsumer是非线程安全的,那么怎么样实现多线程消费?

    7. Kafka生产者客户端中使用了几个线程来处理?分别是什么?

    8. 消费者与生产者的工作流程:

    9. topic的分区数可不可以增加?

    10. 算法:二叉树中的最大路径和

    11. 算法:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。

    三面:

    redis的Zset怎么实现的?

    sentinel和cluster区别和各自适用场景

    redis cluster集群同步过程

    redis单线程为什么快?

    mybatis一级缓存和二级缓存

    spring如何解决循环依赖?

    spring AOP的原理。

    spring的生命周期。

    Dubbo服务暴露和引用过程,负载均衡策略,容错机制在哪里实现的源码

    项目中遇到了哪些问题。(抱歉,我的工作就是增删改查,没接触过相关问题)

    算法:二叉树的镜像

    算法:从上到下打印二叉树

    一面:

    如何设计一个秒杀系统?

    一天爬一千万条文章,怎么做设计?怎么并行协调?100 台服务器怎么尽可能负载均衡?

    有用过短域名服务吗,能说一下吗?

    微服务的特点,如何实现服务发现和负载均衡

    如何排查线上问题?(背过,没排过)

    贝叶斯的概率学原理

    负载均衡的加权轮询算法怎么实现

    如果用户量大幅度上涨,如何优化?

    paxos算法(这个算法太难,学的时候就没太理解)

    平时都看什么博客,最近看什么书了。

    二面:

    自我介绍

    项目介绍(面试官:你说你经验不足,那咱们从基础来问)

    redis的5种类型,及其实现原理(redis设计与实现这本书我倒背如流,面试官夸我很不错)

    如何使用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,阻塞与非阻塞的区别?

    分布式接口的幂等性设计(不能重复扣付款)

    算法:二叉搜索数与双向链表(这个懵了)

    算法:最长不含重复字符的子字符串

    算法:手写快速排序、插入排序、冒泡排序,并分析时间复杂度和空间复杂度,它们的稳定性。

    总结

    多看多记,多做题多看书,希望大家可以找到自己喜欢的工作,一切顺利。

  • 相关阅读:
    超强问卷调查系统源码购买及二次开发
    asp.net core mvc上传大文件解决方案
    asp.net core mvc发布后显示异常错误信息的方法
    基于.net core 2.0+mysql+AceAdmin搭建一套快速开发框架
    改造kindeditor支持asp.net core mvc上传文件
    Centos7 Nginx安装使用
    Centos7 守护进程supervisord 安装使用
    Centos7 .net core 2.0安装使用
    Centos7 Mysql安装
    Centos7 Redis安装
  • 原文地址:https://www.cnblogs.com/lwh1019/p/13221307.html
Copyright © 2011-2022 走看看