ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

一线大厂面试真题

2021-07-06 19:33:01  阅读:109  来源: 互联网

标签:怎么 索引 什么 真题 redis 面试 线程 大厂 mysql


5173面试题

1.分布式锁实现方式以及应用场景;
2.如何解决ribbit mq,rockt mq消息重复读的幂等问题;
3.如何解决ribbit mq消息丢失;
4.数据库分表原理及实现;
5.分布式事务怎么解决;
6.分布式环境下,如何解决数据脏读;
7.ribbon的负载均衡策略有哪些,如何配置规则
8.spring cloud熔断器的是怎样实现的

百度(3轮技术面):

1.synchrnoized和reentrantlock的底层实现及重入的底层原理

2.锁的四种状态及升级过程

3.CMS和G1的异同

4.G1什么时候引发Full GC

5.除了CAS,原子类,syn,Lock还有什么线程安全的方式

6.HashMap和Hashtable的异同

7.允许null键的map你知道哪些

8.null键放在HashMap的哪里

9.为什么hashtable的扩容是2倍+1

10.红黑树的插入时间复杂度

11.解决哈希冲突的方式

12.现有1T的数据,内存只有1G,该怎么对他们排序

13.Tomcat为什么要重写类加载器

14.tcp握手挥手过程及其状态转换

15.mysql隔离级别

16.B树和B+树的区别

17.你知道哪些设计模式,它们在JDK源码中是怎么体现的

18.Java运行时数据区

19.说一个最熟悉的垃圾回收算法

20.吞吐量优先和响应时间优先的回收器是哪些

21.类加载全过程

22.线程池7个参数

23.CAS的ABA问题怎么解决

24.Java内存模型

25.什么叫做阻塞队列的有界和无界

26.cookie和session介绍一下

27.说一下反射,反射会影响性能吗

28.谈一下AQS吧

29.为什么你说AQS的底层是CAS+volatile

30.JUC包里的同步组件主要实现了AQS的哪些主要方法

美团(3轮技术面):

1.ConcurrentHashMap底层原理

2.手写一个LRU

3.HashMap底层数据结构

4.为什么用红黑树不用普通的AVL树

5.为什么在8的时候链表变成树

6.为什么在6的时候从树退回链表

7.线程池7个参数,该怎么配置最好

8.说一下volatile

9.volatile的可见性和禁止指令重排序怎么实现的

10.CAS是什么

11.PriorityQueue底层是什么,初始容量是多少,扩容方式呢

11,若原始大小<64,则扩容为原来的2倍+2,不然就扩容为原来的1.5倍

12.HashMap的容量为什么要设置为2的次幂

13.你知道跳表吗,什么场景会用到

14.CopyOnWriteArrayList知道吗,迭代器支持fail-fast吗

15.innodb的底层数据结构

16.为什么用B+树不用B树

17.为什么用B+树不用红黑树

18.coding:无序数组怎么寻找第k大的数,写一个二叉树层次遍历

19.不知道大小的数据流取其中100个数,怎样的取法能最随机

20.n个物品每个物品都有一定价值,分给2个人,怎么分两个人的价值差最小

21.假设百度每个页面能放100个网页,每个页面都有一个评分,怎样快速找到第8页的所有网页

顺丰(2轮技术面):

1.线程池的设计里体现了什么设计模式

2.说说你了解什么设计模式,知道责任链设计模式吗

3.wait/notify体现了什么设计模式

4.线程池7个参数

5.谈一下spring事务传播

6.谈一下IOC底层原理

7.怎么判断内存泄漏

8.怎么在日志里排查错误,该用哪些Linux命令

9.mysql原子性和持久性怎么保证

10.怎么解决幻读

11.innodb和myisam区别

12.索引分类

13.对象的创建过程

14.对象在内存中的存储布局

15.对象头具体包括什么

16.对象怎么定位

17.堆的划分

18.对象怎么分配

19.具体讲一下CMS流程

20.锁的四种状态

21.Object obj = new Object()这句话在内存里占用了多少内存

22.synchronized和reentrantLock的异同

京东(2轮技术面):

1.总体说一下集合框架

2.你怎么看待接口和抽象类

3.索引的分类

4.主键索引的设计应该采用B-tree索引还是hash索引

5.设计模式说5,6个

6.谈一谈DDD面向领域编程

7.说一下hibernate一级缓存和二级缓存

8.说一下你了解的MQ

9.谈一谈你对高并发的理解,你会从什么角度设计高并发程序

10.JUC包里的限流该怎么做到

11.索引不适用的条件

12.说一下NIO和AIO

13.AIO里用到什么设计模式

14.说一下select,poll,epoll

15.谈一下TCP的拥塞控制

16.你知道什么是as-if-serial语义吗,它和happen-before语义有什么区别

17.Executors创建线程池的方式

18.CachedThreadPool里面用的什么阻塞队列

19.那你知道LinkedTransferQueue吗,和SynchronousQueue有什么区别

20.你还知道什么阻塞队列,能具体说说它们的特点吗

21.线程池的线程数怎么设置比较好

22.你知道新出的LongAdder吗,和AtomicLong有什么区别

23.那你知道LongAccumulator吗

叮咚买菜

1 注册中心
2 spring boot自动装配
3 spting cloud 注册中心选举,组件要精通一些
4 voilte
5 mysql锁,隔离级别,b树 b加树
6 redis 如何实现单线程 ,单个热点key穿透
7 hashmap 链表达到8立马转为红黑树吗,扩容后如何分布,初始化时有扩容吗
8 zk
9 实例化对象整个过程,初始化过程
10 问了MySQL索引,a、b、c三个字段联合索引,a=1 and b>2 and c=3,为什么只有a 、b两个字段走索引
11 集合,线程池等;

1、自己做的最好的项目聊一聊,遇到那些问题,怎么解决的
2、分布式锁redission和setnx;redis怎么保证原子性
3、redis的缓存击穿和穿透
4、mysql的隔离级别
5、mysql的聚集索引和非聚集索引的区别
6、mysql的索引的原理和非聚集索引是否有回表
7、mysql的b树和b+树的区别
8、hashmap get 方法的时间复杂度
9、redis的hashmap和java hashMap的区别
10、jvm中cms作用于年轻代还是老年代,使用的算法是? jdk1.8默认的垃圾回收器是什么?
11、线程池有核心线程数5个,最大线程数10个,当有100个任务同时到达,此时线程池里面有多少个线程, 达到最大线程数,需要多少个任务
12、线程池中核心线程数和最大线程数的怎么设置。
13、三个线程按顺序打印ABC
14、设计一个高并发场景下的库存扣减接口

keep 5年 一面 仅供参考

session一致性数据分片,kafka消费者,分区在发生rebalance时,做了什么
spring ioc,aop, bean生命周期
mysql B+树
线程的生命周期
concurrentHashMap原理

知乎 2-3年 一面

spring声明式事务方面,什么时候失效
spring循环依赖
springmvc和springboot区别
数据库索引方面
volatile,锁相关,syc锁升级
两个链表合并成有序链表
springmvc请求流程

2020最新Java面试题及答案V3.0(顺序看)

  1. jvm内存结构,垃圾回收算法,GC垃圾回收器—见2020最新Java面试题及答案,jvm都看
  2. Java集合—都看
    Hashmap底层结构,
    Jdk1.7到1.8升级了什么?
  3. 线程的创建方式(3种),启动方式(Thread,Runnable),区别(Runnable,Callable)
  4. 线程池原理,组成
  5. 线程的几种基本状态(生命周期)
  6. 线程基本方法
  7. 同步锁(synchronized全看),关键字volatile
  8. 乐观锁,悲观锁,自旋锁;哪里用到了乐观锁
  9. 造成死锁的原因?
  10. 什么是线程安全?
  11. ThreadLocal的作用(暂时没问到)
  12. Synchronized和Reentranlock(Reentranlock若会应该是加分项)
  13. concurrentHashMap
  14. CAS的概念
  15. Spring常用注解
  16. Springmvc,springboot原理,区别
  17. Mybatis缓存 6.1.12
  18. 几种消息队列的对比,原理(至少说明白一个)
  19. Redis(看封羽分享的文档),数据结构,缓存击穿,穿透,雪崩等
  20. Nginx原理及配置
  21. 数据库存储引擎(mysql)
    B+tree原理,优点
  22. 索引
  23. 数据库回滚是如何实现的?(最底层)
  24. mysql数据库事务(分布式事务),隔离级别
  25. 数据库行级锁,X锁,什么情况会锁表
  26. Java算法,一家问了算法,一家面试题非递归方法
  27. 数据结构(红黑树,二叉树等)
  28. 常用的加密算法
  29. Dubbo

闪送、水滴筹、美团、京东、百度

闪送

  1. redis锁是如何实现的,为什么要用redis锁,如何优化,能不能不用redis锁,用其他方式代替加锁解决并发线程安全?redis原子操作increment()使用场景,可不可以代替redis锁?
  2. 服务限流如何做的,怎么设计
  3. 服务降级如何做的,怎么设计
  4. 上游接口异常,如何设计处理自动感知接口异常
  5. 订单如何设计?订单状态有哪些状态?
  6. mysql大数据量分页优化
  7. Spring SpringBoot SpringCloud 区别?
  8. SpringBoot Starter 如何实现自动配置,怎么自定义starter?

技术问的不多,结合业务提问题,顺着一个业务线问到底,每一个点是如何解决的,遇到过什么问题,怎么处理的,有没有更好的优化方式?

水滴筹:

  1. 分布式锁如何实现,为什么选择redis作为分布式锁?有没有出现过问题,怎么解决的?
  2. redis集群怎么搭建的,集群中数据是怎么分布的?
  3. 怎么保证RocketMq消息的有序性?
  4. ElasticSearch 数据的写入流程?查询流程?如果集群部署,查询10条数据从哪里查?怎么查?
  5. mysql如何分库分表?集群部署查询10条数据从哪里查?怎么查?
  6. Mycat怎么使用的?Sharding-JDBC怎么使用?
  7. 分布式事物怎么解决的?2PC,3PC的原理,有什么区别,优缺点?
  8. sychornized加锁的原理?Reentrantlock加锁原理?
  9. Voliate能实现什么?怎么保证有序性、可见性?
  10. countdownlatch cyclicbarrier的区别?
  11. 内存溢出和内存泄露什么区别?有哪些场景?
  12. 服务限流如何做?有哪几种方式?限流算法?漏桶算法和令牌桶算法
  13. hystrix怎么实现的限流,信号量还是线程隔离?
  14. nginx如何限流,哪几种配置方式?

技术点问的比较多,有些会深入的问,业务问的不深。

美团

  1. redis锁如何实现?有没有出现过问题?怎么优化的?
  2. Redisson是怎么实现加锁的?怎么自动延长锁的过期时间?如果业务一直不结束,会一直延长吗?
  3. 缓存穿透是什么?如何解决?
  4. Redis热点数据超高并发量请求如何解决?
  5. 为什么用redis作为缓存,在项目中哪些地方用到?
  6. 缓存跟数据库数据一致性怎么解决?
  7. redis集群数据如何存储?
  8. 为什么用Springboot?SpringBoot自动配置原理?如何自定义starter?
  9. Es查询优化?如果需要根据某个字段查询,这个字段应该设置为什么类型?为什么?
  10. 算法题:找出一个字符串中最大的回文字符串。
  11. 算法题:给你一个int 数组,随机从中删除一个,然后找出来删除的那个值

面试模式:首先自我介绍,完了挑一个最熟悉的项目介绍,中间用了哪些技术,然后挑几个技术点问,不仅要会使用,还要明白其原理,甚至问到源码级别,类的名称及包的全路径都会问。之后让你挑一个自己最熟练的技术,然后针对这个技术详细的问到底。最后是算法编程题,如果不会没思路就给你换一个简单的,还不会的话那就等通知了。。。

京东

  1. redis使用场景,在项目哪地方用到了?
  2. 分布式锁怎么实现的?redisson原理?
  3. BeanFactory 和 FactoryBean 什么区别,各自的使用场景是什么?
  4. Spring循环依赖怎么解决的?哪种循环依赖不能解决?为什么用三级缓存,二级缓存不行吗?
  5. mysql怎么优化的?
  6. innodb底层的索引数据结构是什么?B+树和B树有什么区别?为什么B+树比B树查询速度快?
  7. 聚簇索引和非聚簇索引什么区别?
  8. 什么是回表?
  9. 如果有一个联合索引a b c ,查询条件是where b = ? And a = ? ,这个时候走索引吗,为什么?
  10. 有个需求,订单表数据比较多,每个客户的查询要求不一样,这个时候又不能建太多索引,有什么好的解决方案没?不限技术使用范围。

百度

  1. redis分布式锁的实现原理?
  2. 分布式锁redis和zookeeper各自的优缺点?
  3. RocketMq怎么防止消息丢失,怎么解决的?
  4. RocketMq延迟消息的实现原理?
  5. Mysql索引失效的场景?
  6. Mysql的存储引擎有哪些?什么区别?底层数据结构?
  7. 线程池的执行流程?常用注意事项?
  8. 线程有哪几种状态?分别解释下?
  9. 除了分布式锁,java里面的锁有哪几种?平常在哪使用?他们的原理?
  10. ConcurrentHashMap 的执行流程?详细点

面试完字节跳动,刚整理的最新面试题:

1、为什么MySQL索引更适合B+树而不是二叉树、B树
	https://blog.csdn.net/qq_38038480/article/details/81738079

2、微服务下的用户登录权限校验解决方案
	https://www.cnblogs.com/zxfei/p/11716822.html

3、微服务之熔断、降级、限流    熔断是在客户端还是服务端?
	https://blog.csdn.net/aa1215018028/article/details/81700796

4、kafka如何保证消息不丢失?Kafka Rebalance机制

	保证消息不丢失:https://www.jianshu.com/p/68c173e4c549
	Rebalance机制:https://www.cnblogs.com/yoke/p/11405397.html

5、redis集群模式下key的寻址
	https://blog.csdn.net/chang384915878/article/details/86749209

6、算法题:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
输入: [10, 2]
输出: 210

输入: [3,30,34,5,9]
输出: 9534330

输入:[5, 60, 2, 80, 342]
输出:865432200

输入是数组,输出是字符串。

标签:怎么,索引,什么,真题,redis,面试,线程,大厂,mysql
来源: https://blog.csdn.net/weixin_44796239/article/details/118527501

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有