百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

阿里、美团、拼多多、网易大厂面试之Redis+多线程+JVM+微服务...

mhr18 2024-11-03 13:36 28 浏览 0 评论

非常非常不错的一篇面经文章,文中很多的面试题目都值得我们在面试前刷一遍,强烈推荐阅读3遍以上。如果觉得不错,可以收藏分享一下。(面经没有具体答案,需要大家一起来探讨学习一下。)

美团篇(33道)

  1. 了解SOA,微服务吗?
  2. 分布式系统如何负载均衡?如何确定访问的资源在哪个服务器上?
  3. 设计一个分布式负载均衡缓冲系统,如何快速定位到是那个服务器?
  4. 如何保证缓冲区和数据库之间的强一致性?
  5. HashMap高并发情况下会出现什么问题?
  6. 说一说在浏览器中输入一个url后,直到浏览器显示页面的过程中发生了什么?
  7. 字符串中句子的反转(比如ABC DEF,输出DEF ABC)
  8. 给任意二叉树的所有结点加next指针
  9. 用过反向代理吗?
  10. 进程间共享内存的方式有哪些?
  11. linux下如何查看网络端口状态,如何查看内存使用情况?
  12. ConcurrentHashMap如何扩容?
  13. 知道java的异常吗?
  14. 运行时异常如果不处理会怎么样?应该怎么处理运行时异常?
  15. 写代码:给你5000万个int,求出前1000个最大的数,有2G内存。
  16. 给你n个不重复的整数,随机找出m个不重复的整数,要求时间和空间复杂度都是O(m)。
  17. 对于SQL慢查询的优化?
  18. 用过哪些容器?
  19. 用过动态代理吗?
  20. 说说深入理解JVM中印象最深刻的章节
  21. 堆和栈中存的是什么?static修饰的遍历存在哪里?
  22. 说说《Effective Java》中你印象最深的三条和你的理解
  23. 你觉得你哪一块只是最熟悉
  24. 那你说说HashMap的内部实现;
  25. HashMap是线程安全的吗?
  26. 那ConcurrentHashMap内部是如何实现的?每个segment是个什么数据结构?
  27. 你的项目中用到哪些技术?
  28. 说说你用了它的什么?
  29. Spring的优点?Spring AOP的原理?Spring如何实现解耦合?
  30. 对链表了解吗?说说他们的区别?
  31. 会做链表两个结点的交换吗?
  32. 再写一个,给你一个链表和一个整数k
  33. 说说mybatis配置了xml过后是如何完成数据库操作的?

Redis

  1. redis 和 memcached 什么区别?
  2. 为什么高并发下有时单线程的 redis 比多线程的memcached 效率要高?
  3. redis 主从复制如何实现的?
  4. redis 的集群模式如何实现?
  5. redis 的 key 是如何寻址的?
  6. 使用 redis 如何设计分布式锁?说一下实现思路?使用 zk 可以吗?如何实现?这两种有什么区别?
  7. 知道 redis 的持久化吗?底层如何实现的?有什么优点缺点?
  8. redis 过期策略都有哪些?LRU 算法知道吗?写一下 java 代码实现?
  9. 缓存穿透、缓存击穿、缓存雪崩解决方案?
  10. 在选择缓存时,什么时候选择 redis,什么时候选择 memcached
  11. 缓存与数据库不一致怎么办?
  12. 主从数据库不一致如何解决
  13. Redis 常见的性能问题和解决方案
  14. Redis 的数据淘汰策略有哪些?
  15. Redis 当中有哪些数据结构?
  16. 假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?
  17. ...............


拼多多篇(40道)

  1. 给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 01 概率一样。
  2. 10 亿个 url,每个 url 大小小于 56B,要求去重,内存 4G。
  3. 把一个 bst 转化成一个双向链表。
  4. http 和 https 区别,https 在请求时额外的过程,https 是如何保证数据安全的。
  5. IP 地址子网划分。
  6. POST 和 GET 区别。
  7. 硬链接和软连接区别。
  8. DNS 解析过程。
  9. kill 用法,某个进程杀不掉的原因(进入内核态,忽略 kill 信号)。
  10. linux 用过的命令。
  11. 系统管理命令(如查看内存使用、网络情况)。
  12. 管道的使用。
  13. grep 的使用,一定要掌握,每次都会问在文件中查找。
  14. shell 脚本。
  15. find 命令。
  16. awk 使用。
  17. Linux 下的一些指令,(进程id), (进程 id),(进程id),?(上一条命令退出时状态),怎么查看进程,按照内存大小,CPU 占用排序等等。(大写 M 和大写 P)。
  18. http 的 get 和 post 方法。
  19. 介绍下你所了解的 epoll。
  20. 数据库 sql 的了解程度。
  21. 项目中遇到的问题,自己咋解决的等等。
  22. 手写一个全排列。
  23. B树和B+树。
  24. 介绍一下 Hash,怎么解决冲突。
  25. 进程间的通信,共享内存方式的优缺点。
  26. 说下你平时看的一些技术博客,书籍。
  27. linux 下的一些指令。
  28. 工作中你觉得最不爽的事情是什么。
  29. 说下你的优缺点。
  30. 有没有想过去创业公司。
  31. 写个 strcpy 函数。
  32. 说说你自己的性格。
  33. 给你一个系统(面试官好像是无人车部门的),后台的逻辑已经实现了,但是前端加载很慢,怎么检测。
  34. 以后可能要学习很多新技术,你怎么看。
  35. 项目中遇到的困难(提前想好,并且把实现或者优化方法说清楚)。
  36. 系统的量级、pv、uv 等。
  37. 应对高并发的解决办法(分布式)。
  38. 在项目中主要负责了哪些工作。
  39. nginx 的负载均衡。
  40. 分布式缓存的一致性,服务器如何扩容(哈希环)。

多线程

  1. 现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?
  2. 在 Java 中 Lock 接口比 synchronized 块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?
  3. 在 java 中 wait 和 sleep 方法的不同?
  4. 用 Java 实现阻塞队列
  5. 用 Java 写代码来解决生产者——消费者问题
  6. 用 Java 编程一个会导致死锁的程序,你将怎么解决?
  7. 什么是原子操作,Java 中的原子操作是什么?
  8. Java 中的 volatile 关键是什么作用?怎样使用它?在 Java 中它跟 synchronized 方法有什么不同?
  9. 什么是竞争条件?你怎样发现和解决竞争?
  10. 你将如何使用 threaddump?你将如何分析 Thread dump?
  11. Java 中你怎样唤醒一个阻塞的线程?
  12. 为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
  13. 在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
  14. 什么是不可变对象,它对写并发应用有什么帮助?
  15. 你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的?
  16. 使用synchronized修饰静态方法和非静态方法有什么区别。
  17. 简述ConcurrentLinkedQueue和LinkedBlockingQueue的用处和不同之处。
  18. 导致线程死锁的原因?
  19. 怎么解除线程死锁。
  20. 非常多个线程(可能是不同机器),相互之间需要等待协调,才能完成某种工作,问怎么设计这种协调方案。
  21. 用过读写锁吗,原理是什么,一般在什么场景下用。
  22. 开启多个线程,如果保证顺序执行,有哪几种实现方式,或者如何保证多个线程都执行完再拿到结果。
  23. 延迟队列的实现方式,delayQueue和时间轮算法的异同。

更多面试资料、架构学习文档需要获取的朋友们可以转发分享此文,关注小编后台私信:“面试资料”即可一并获取。


网易篇(72道)

  1. HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化。
  2. HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。
  3. HashMap,HashTable,ConcurrentHashMap的区别。
  4. 极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。
  5. HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么。
  6. java中四种修饰符的限制范围。
  7. Object类中的方法。
  8. 接口和抽象类的区别,注意JDK8的接口可以有实现。
  9. 动态代理的两种方式,以及区别。
  10. Java序列化的方式。
  11. 传值和传引用的区别,Java是怎么样的,有没有传值引用。
  12. 一个ArrayList在循环过程中删除,会不会出问题,为什么。
  13. @transactional注解在什么情况下会失效,为什么。
  14. B+树
  15. 快速排序,堆排序,插入排序(其实八大排序算法都应该了解
  16. 一致性Hash算法,一致性Hash算法的应用
  17. JVM的内存结构。
  18. JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。
  19. JVM的栈中引用如何和堆中的对象产生关联。
  20. 可以了解一下逃逸分析技术。
  21. GC的常见算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。
  22. 标记清除和标记整理算法的理解以及优缺点。
  23. eden survivor区的比例,为什么是这个比例,eden survivor的工作过程。
  24. JVM如何判断一个对象是否该被GC,可以视为root的都有哪几种类型。
  25. 强软弱虚引用的区别以及GC对他们执行怎样的操作。
  26. Java是否可以GC直接内存。
  27. Java类加载的过程。
  28. 双亲委派模型的过程以及优势。
  29. 常用的JVM调优参数。
  30. dump文件的分析。
  31. Java有没有主动触发GC的方式(没有)。
  32. Java实现多线程有哪几种方式。
  33. Callable和Future的了解。
  34. 线程池的参数有哪些,在线程池创建一个线程的过程。
  35. volitile关键字的作用,原理。
  36. synchronized关键字的用法,优缺点。
  37. Lock接口有哪些实现类,使用场景是什么。
  38. 可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁(ConcurrentHashMap中的segment)。
  39. 悲观锁,乐观锁,优缺点,CAS有什么缺陷,该如何解决。
  40. ABC三个线程如何保证顺序执行。
  41. 线程的状态都有哪些。
  42. sleep和wait的区别。
  43. notify和notifyall的区别。
  44. ThreadLocal的了解,实现原理。
  45. 常见的数据库优化手段索引的优缺点,什么字段上建立索引数据库连接池。
  46. durid的常用配置。
  47. TCP,UDP区别。三次握手,四次挥手,为什么要四次挥手。
  48. 长连接和短连接。
  49. 连接池适合长连接还是短连接。
  50. 观察者模式代理模式单例模式,有五种写法,可以参考文章单例模式的五种实现方式可以考Spring中使用了哪些设计模式
  51. 分布式事务的控制。
  52. 分布式锁如何设计。
  53. 分布式session如何设计。
  54. dubbo的组件有哪些,各有什么作用。
  55. zookeeper的负载均衡算法有哪些。
  56. dubbo是如何利用接口就可以通信的。
  57. redis和memcached的区别。
  58. redis支持哪些数据结构。
  59. redis是单线程的么,所有的工作都是单线程么。
  60. redis如何存储一个String的。
  61. redis的部署方式,主从,集群。
  62. redis的哨兵模式,一个key值如何在redis集群中找到存储在哪里。
  63. redis持久化策略。
  64. SpringMVC的Controller是如何将参数和前端传来的数据一一对应的。
  65. Mybatis如何找到指定的Mapper的,如何完成查询的。
  66. Quartz是如何完成定时任务的。
  67. 自定义注解的实现。
  68. Spring使用了哪些设计模式。
  69. Spring的IOC有什么优势。
  70. Spring如何维护它拥有的bean。
  71. 一些较新的东西JDK8的新特性,流的概念及优势,为什么有这种优势。
  72. 区块链了解如何设计双11交易总额面板,要做到高并发高可用

JVM

  1. JVM 内存分哪几个区,每个区的作用是什么?
  2. 如和判断一个对象是否存活?(或者 GC 对象的判定方法)
  3. 简述 Java 垃圾回收机制?
  4. Java 中垃圾收集的方法有哪些?
  5. Java 内存模型
  6. Java 类加载过程?
  7. 简述 Java 类加载机制?
  8. 类加载器双亲委派模型机制?
  9. 什么是类加载器,类加载器有哪些?
  10. 简述 Java 内存分配与回收策率以及 Minor GC 和Major GC?


蚂蚁金服篇(39道)

  1. HashMap&ConcurrentHashMap
  2. 再谈谈一致hash算法?
  3. 乐观锁&悲观锁?
  4. 可重入锁&Synchronize?
  5. 事务四大特性?
  6. 事务的二段提交机制?
  7. 聚簇索引&非聚簇索引?
  8. 用自己的实践经历说一下索引的使用场景(说一个就要举一个例子)?
  9. 当前读&快照读?
  10. 类加载过程?
  11. 双亲委派机制及使用原因?
  12. 说说GC算法?
  13. Http&Https的区别
  14. Https的加密方式
  15. 线程池的核心参数和基本原理
  16. 线程池的调优策略
  17. 说说自己参与的项目,技术难度在哪里?
  18. Collections.sort底层排序方式?
  19. 排序稳定性?
  20. 具体场景的排序策略?
  21. Http请求过程,DNS解析过程
  22. 三次握手四次挥手
  23. 简述线程池和并发工具的使用?
  24. 数据库索引原理
  25. 频繁老年代回收怎么分析解决
  26. Spring IOC、AOP?
  27. 讲讲SpringBoot/SpringCloud的一些应用?
  28. 阻塞队列不用java提供的自己怎么实现,condition和wait不能用
  29. 拥塞窗口讲一讲,为什么要用慢启动算法
  30. 负载均衡的原理?
  31. Redis的数据一致性问题(分布式多节点环境 & 单机环境)?
  32. 讲讲docker容器?
  33. 如何实现何高并发下的削峰,限流?
  34. 项目中用的中间件的理解(Dubbo、MQ、Redis、kafka、zk)
  35. 服务器雪崩是怎么造成的?之前有这样的经历吗?怎么防备?
  36. 高并发架构的设计思路
  37. 以前项目中遇到的最大问题和解决策略
  38. 生活中遇到的最大的挫折
  39. 生活中遇到的最大的令你最有成就感的事情

Spring全家桶(SpringCloud、Docker)

Spring

  1. 不同版本的 Spring Framework 有哪些主要功能?
  2. 什么是 Spring Framework?
  3. 列举 Spring Framework 的优点。
  4. Spring Framework 有哪些不同的功能?
  5. Spring Framework 中有多少个模块,它们分别是什么?
  6. 什么是 Spring 配置文件?
  7. Spring 应用程序有哪些不同组件?
  8. 使用 Spring 有哪些方式?
  9. 什么是 Spring IOC 容器?
  10. 什么是依赖注入?
  11. spring 中有多少种 IOC 容器?
  12. 什么是 spring bean?
  13. spring 提供了哪些配置方式?
  14. spring 支持集中 bean scope?
  15. spring bean 容器的生命周期是什么样的?
  16. 什么是 spring 的内部 bean?
  17. 什么是基于注解的容器配置?
  18. 如何在 spring 中启动注解装配?
  19. spring DAO 有什么用?
  20. spring JDBC API 中存在哪些类?
  21. 列举 spring 支持的事务管理类型
  22. 什么是 AOP?
  23. 什么是 Aspect?
  24. AOP 有哪些实现方式?
  25. Spring AOP and AspectJ AOP 有什么区别?



Docker

  1. 什么是Docker?
  2. 如何使用Docker构建与环境无关的系统?
  3. Dockerfile中的命令COPY和ADD命令有什么区别?
  4. 什么是Docker镜像?
  5. 什么是Docker容器?
  6. 什么是Docker Hub?
  7. Docker容器在任何给定时间点可以处于什么状态?
  8. 有没有办法识别Docker容器的状态?
  9. Dockerfile中最常见的指令是什么?
  10. 什么类型的应用程序 - 无状态或有状态更适合Docker容器?
  11. Docker Image和Layer有什么区别?
  12. 什么是虚拟化?
  13. 什么是管理程序?
  14. 什么是Docker Swarm?
  15. 你将如何监控生产中的Docker?

更多面试专题答案、实战学习文档,需要获取的朋友们可以转发分享此文,关注小编后台私信:“面试资料”即可一并获取。


相关推荐

【推荐】一个开源免费、AI 驱动的智能数据管理系统,支持多数据库

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!.前言在当今数据驱动的时代,高效、智能地管理数据已成为企业和个人不可或缺的能力。为了满足这一需求,我们推出了这款开...

Pure Storage推出统一数据管理云平台及新闪存阵列

PureStorage公司今日推出企业数据云(EnterpriseDataCloud),称其为组织在混合环境中存储、管理和使用数据方式的全面架构升级。该公司表示,EDC使组织能够在本地、云端和混...

对Java学习的10条建议(对java课程的建议)

不少Java的初学者一开始都是信心满满准备迎接挑战,但是经过一段时间的学习之后,多少都会碰到各种挫败,以下北风网就总结一些对于初学者非常有用的建议,希望能够给他们解决现实中的问题。Java编程的准备:...

SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!

官网:https://sqlshift.cn/6月,SQLShift迎来重大版本更新!作为国内首个支持Oracle->OceanBase存储过程智能转换的工具,SQLShift在过去一...

JDK21有没有什么稳定、简单又强势的特性?

佳未阿里云开发者2025年03月05日08:30浙江阿里妹导读这篇文章主要介绍了Java虚拟线程的发展及其在AJDK中的实现和优化。阅前声明:本文介绍的内容基于AJDK21.0.5[1]以及以上...

「松勤软件测试」网站总出现404 bug?总结8个原因,不信解决不了

在进行网站测试的时候,有没有碰到过网站崩溃,打不开,出现404错误等各种现象,如果你碰到了,那么恭喜你,你的网站出问题了,是什么原因导致网站出问题呢,根据松勤软件测试的总结如下:01数据库中的表空间不...

Java面试题及答案最全总结(2025版)

大家好,我是Java面试陪考员最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Spring、MySQL、JVM、Redis、Linux、Sprin...

数据库日常运维工作内容(数据库日常运维 工作内容)

#数据库日常运维工作包括哪些内容?#数据库日常运维工作是一个涵盖多个层面的综合性任务,以下是详细的分类和内容说明:一、数据库运维核心工作监控与告警性能监控:实时监控CPU、内存、I/O、连接数、锁等待...

分布式之系统底层原理(上)(底层分布式技术)

作者:allanpan,腾讯IEG高级后台工程师导言分布式事务是分布式系统必不可少的组成部分,基本上只要实现一个分布式系统就逃不开对分布式事务的支持。本文从分布式事务这个概念切入,尝试对分布式事务...

oracle 死锁了怎么办?kill 进程 直接上干货

1、查看死锁是否存在selectusername,lockwait,status,machine,programfromv$sessionwheresidin(selectsession...

SpringBoot 各种分页查询方式详解(全网最全)

一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...

《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略

《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...

LoadRunner(loadrunner录制不到脚本)

一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...

Redis数据类型介绍(redis 数据类型)

介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...

RMAN备份监控及优化总结(rman备份原理)

今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...

取消回复欢迎 发表评论: