目录
备注:引用请标注出处,同时存在的问题请在相关博客留言,感谢!
一、基本面试流程回顾
总体上面试都是以自我介绍+项目介绍+项目细节/难点提问+基础知识点考核+算法题这个流程下来的。
- 自我介绍+项目介绍+项目细节/难点提问——-这个主要看个人的经历了,每个人都不一样
- 基础知识点考核———还是可以去增强自己的,也是这次的主要的一些总结思路
- 算法题———–一般都是LeetCode高频题或者剑指offer高频题,这个得在找工作之前的好好的练习。
二、基本高频算法题展示
基本高频算法考题总结如下,只是列举了个人认为高频的,如有错误请告知,谢谢:
归属内容 | 对应总结链接 | 笔试定义 | 代表题目展示 |
数学思维相关考题 |
数学思维高频考题 |
Letcode高频考题 | 众数、快乐数、丑数、回文数、平方根、超级次方、二进制中1的个数等 |
字符串相关考题 |
字符串高频考题 |
Letcode高频考题 | 最长公共子串、最长回文子串、最长无重复字符子串、最小覆盖子串、字符串相乘、中文数字表达转实际数字格式等 |
数组相关考题 | 数组高频考题 | Letcode高频考题 |
找到数组 A 元素组成的小于 n的最大整数、两数之和、三数之和、搜索旋转排序数组、只出现一次的数字、最大子序列、最长连续递增序列、最长公共前缀等 |
散列相关考题 | 散列高频考题 | Letcode高频考题 |
重复字符的最长子串、字母异位词分组、LRU缓存机制、重复元素、同构字符串等 |
栈相关考题 | 栈高频考题 | Letcode高频考题 |
有效的括号、最小栈、用栈实现队列、用队列实现栈、逆波兰表达式求值、用数组实现一个栈、基本数学运算表达式求值等 |
队列相关考题 | 队列高频考题 | Letcode高频考题 |
用队列实现栈、使用栈实现队列、设计循环队列、滑动窗口最大值、队列的最大值、用数组实现一个队列等 |
链表相关考题 | 链表高频考题 | Letcode高频考题 | 反转链表、链表中环的检测、链表中环的入口点、删除链表中倒数第K个节点、两个链表的第一个公共节点、链表的中间节点、合并两个有序链表、删除链表中的重复元素等 |
树相关考题 | 树高频考题 | Letcode高频考题 |
二叉树的最大深度、对称二叉树、二叉树的最近公共祖先、二叉树的直径、二叉树的层平均值、二叉树的镜像、二叉树的最大宽度、平衡二叉树等 |
排序相关考题 | 排序算法高频考题 | Letcode高频考题 |
冒泡排序、鸡尾酒排序、插入排序、选择排序、快速排序、归并排序、堆排序、Top K 问题分析、使用堆排序思想实现优先级队列、计数排序、桶排序、基数排序等 |
剑指offer考题 | 剑指offer所有高频考题 | 剑指offer考题汇总分析 | 剑指offer全部高频题罗列 |
动态规划考题 | 动态规划高频考题 | Letcode高频考题 | 最大子序和、最长上升子序列、最长公共子序列、最大子数组乘积、编辑距离、单词拆分、爬楼梯、股票买卖问题、最佳买卖股票时机含冷冻期等 |
图论考题 | 图论高频考题(国内一般不考) | 进阶分析考题 | 岛屿数量、网络延迟时间、单源最短路径、负权最短路径问题、具有最小生成树的连通图的最小代价、找到最终的安全状态等 |
三、基本面试题总结回顾
(一)Java高频面试题整理
相关答案参考:高频面试题基本总结回顾(含笔试高频算法整理)
1.HashMap和ConcurrentHashMap区别(高频考点)
2. ConcurrentHashMap的数据结构(高频考点)
5.HashMap1.7与HashMap1.8的区别,从数据结构上、Hash值的计算上、链表数据的插入方法、内部Entry类的实现上分析?
6.HashMap如果我想要让自己的Object作为K应该怎么办?
10.HashMap相关put操作,get操作等流程?(高频考点)
12.Hash1.7是基于数组和链表实现的,为什么不用双链表?HashMap1.8中引入红黑树的原因是?为什么要用红黑树而不是平衡二叉树?(高频考点)
13.HashMap、HashTable、ConcurrentHashMap的原理与区别?
14.Collections.SynchronizedCollection方法实现原理是什么?
15.Array和ArrayList有什么区别?使用时注意事项有哪些?
16.常用的集合类有哪些?比如List如何排序(最好说下底层上的实现)?(高频考点)
17.ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和各自适应的场景是什么?
22.Java线程的状态?细说一下BLOCKED和WAITING有什么区别?(高频考点)
25.Java程序中启动一个线程是用run()还是start()?
26.Thread的start方法调用两次会怎么样?Thread是如何保证start方法调用只有一次生效?(高频考点)
31.volatile与synchronized的区别是什么?volatile作用(高频考点)
33.Atomic类如何保证原子性(CAS操作)(高频考点)
34.AtomicInteger、AtomicBoolean这些类之所以在高并发时高效,共同的原因是?
37.无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁,解释锁升级?(高频考点)
38.乐观锁 VS 悲观锁?公平锁 VS 非公平锁?独享锁 VS 共享锁?
41.用java 代码实现一个死锁用例,说说怎么解决死锁问题?回到用例代码下,如何解决死锁问题呢?(高频考点)
44.ReentrantLock底层公平锁和非公平锁的原理(高频考点)
47.除了用Object.wait和Object.notifyAll来实现线程间的交互外,你还会常用哪些来实现?
49.ThreadLocal为什么要使用弱引用和内存泄露问题(高频考点)
50.ThreadLocal怎么解决内存泄露的问题?(高频考点)
54.核心线程池ThreadPoolExecutor的参数/常见线程池的创建参数是什么样的?(高频考点)
56.实现一个自定义的ThreadFactory的作用通常是?
58.ThreadPoolExecutor的工作流程(高频考点)
59.ScheduledThreadPoolExecutor中的使用的是什么队列?内部如何实现任务排序的?
60.线程池的运行逻辑,FixedThreadPool、CachedThreadPool的原理(高频考点)
61.用Executors.newCachedThreadPool创建的线程池,在运行的过程中有可能产生的风险是?
62.阻塞队列ArrayBlockingQueue、LinkedBlockingQueue分析(高频考点)
63.请合理的使用Queue来实现一个高并发的生产/消费的场景,给些核心的代码片段。
65.JUC下的常见类的使用,take、poll的区别,put、offer的区别?
66.Future原理,其局限性是什么?并说说CompletableFuture核心原理?
67.你是否了解fork/join(基本思想)?在工作中是如何使用的?说说他们的优势是什么?(高频考点)
68.Java线程池的调优经验有哪些?(线程池的合理配置)(高频考点)
69.一个请求中,计算操作需要50ms,db操作需要100ms,对于一台8核的机器来说,如果要求cpu利用率达到100%,如何设置线程数?(高频考点)
70.如果系统中不同的请求对应的cpu时间和io时间都不同,那怎么设置线程数量?(高频考点)
71.线程池核心数20,最大600,阻塞队列200,当QPS200(注意是qps)的时候,请求是调第三方阻塞超时,请问怎么提高它的吞吐量(注意不能加机器)?(高频考点)
72.当前线程池是200,线程单次处理请求20ms,那么理论上单节点的qps 是多少呢?
74.Java中一个字符占多少个字节,扩展再问int、 long、double占多少字节?
78.final、finnally、finalize的区别是什么?
79.Jdk1.8/Jdk1.7都分别新增了哪些特性?其他版本呢?(高频考点)
80.简单说下Lambda表达式,其解决了什么,相比java7的处理优化了什么?
82.StringBuffer和StringBuilder的区别是什么?性能对比?如何鉴定线程安全?
83.StringBuffer 和 StringBuilder 底层怎么实现的?(高频考点)
84.String str=”hello world”和String str=new String(“hello world”)的区别?(高频考点)
90.假设引用了一个第三方的jar 有个类和我自己写的代码类一样,那么在类加载机制过程中是如何处理的?(高频考点)
92.多线程对Long数据进行加和会存在什么问题?如何解决?
98.在Java程序运行阶段,可以用什么命令行工具来查看当前Java程序的一些启动参数值,例如Heap Size等。
99.用什么命令行工具可以查看运行的Java程序的GC状况,请具体写出命令行格式。(高频考点)
100.用什么工具,可以在Java程序运行的情况下跟踪某个方法的执行时间,请求参数信息等,并请解释下工具实现的原理。
101.当一个Java程序接收请求,很长时间都没响应的话,通常你会怎么去排查这种问题?
(二)JVM相关面试问题整理
相关答案参考:高频面试题基本总结回顾(含笔试高频算法整理)
6.Java 堆永久代的回收(该部分归属java7,大概率不会问了)
10.简述GC中Stop the world(STW),并说出安全点
21.JVM中GC Root的选择标准是什么?相关JVM的调优参数有哪些?在工作中怎么调优的?
23.一个4核8G的服务器,初步设置JVM参数,如何分配?(必考)
28.JVM虚拟机老年代什么情况下会发生gc,给你一个场景,一台4核8G的服务器,每隔两个小时就要出现一次老年代gc,现在有日志,怎么分析是哪里出了问题?
29.判定一个对象不可达要回收,举个实际例子来说明。有没有从代码层面去直接分析一下?
(三)MySQL相关面试问题整理
相关答案在这里逐步增加:高频面试题基本总结回顾(含笔试高频算法整理)
3.如何解决事务的并发问题(脏读、不可重复读和幻读)(高频考点)
12.简单谈谈MYSQL Innodb索引的数据结构,并简述B+树的查找过程(高频考点)
13.说说索引使用注意事项与数据类型选择,或则说说MySQL常见索引
16.InnoDB一棵B+树可以存放多少行数据?可否对InnoDB存储引擎B+树的树高进行推导
19.SQL如何优化,给出思路(说出部分即可,一下也只是一些思路)
25.myisam和innodb的区别,什么时候选择myisam
26.binlog\redolog\undolog都是什么,起什么作用?(高频考点)
27.数据库的乐观锁与悲观锁的区别是什么?乐观锁常用的两种实现方式是什么?
34.什么是覆盖索引?如果查询主键id下覆盖索引还生效吗?(高频考点)
35.使用explain 查看数据已经使用了索引,但还是查询很慢,可能的原因是?
36.对于sql如下select a from T where b=23 and c>4 order by d,其如何建立索引可以使查询高效,如何验证?分析下(高频考点)
2.有两张表:订单表有订单号和产品id,产品表有产品id 和产品名称,设计SQL实现返回产品名称和每一项产品的总订单数
7.查询每个商品类别的销售数量和销售总额,并按照销售总额从高到低排序
8.查询每个商品类别的销售数量和销售总额,并只显示销售总额排名前3的商品类别
(四)Redis相关面试问题整理
相关答案在这里逐步增加:高频面试题基本总结回顾(含笔试高频算法整理)
1.单线程的Redis为什么快?
2.Redis支持的数据类型(必考)
3.Redis和memcached的区别
4.Redis在项目中的主要作用是是什么?怎么用的?(必考)
5.Redis实现分布式锁的思路方案(必考)
6.分析基于Redis的限流器实现
7.Redis和DB数据一致性处理(必考)
8.Redis的数据过期策略分析(必考)
9.Redis的LRU过期策略的具体实现(必考)
10.分析Redis缓存雪崩问题以及解决方案(必考)
11.分析Redis缓存穿透问题和解决方案(必考)
12.Redis的持久化机制分析(必考)
13.分析下Redis的管道pipeline
14.Redis集群容错机制是什么样的?(必考)
15.Redis集群中某个master节点挂了,后面流程怎么判断?(必考)
16.高并发情况下,对于Redis的更新操作有哪些注意事项?
17.高并发下,先更新数据库,再删除缓存,存在啥问题,如何解决呢?
18.高并发情况下,先删除缓存,再更新数据库,这样会有啥问题,解决方案是?
19.zset跳表的数据结构分析(必考)
20.展开说说你了解的跳表
21.Redis使用跳表不用B+树的原因?
22.跳跃表和B+树结构上有啥区别
23.Redis的缓存优化方向有哪些?你们怎么理解的?对热点键的注意事项设计什么?
24.跳表(Skip List)三大问题举例
25.Zset底层的数据结构分析,如何体现的高效?(必考)
26.Redis 6.0以后的线程模型
27.Redis集群模式,节点怎么通信的?满足了CAP那两点?
28.Redis分布式锁实现上有啥问题缺陷?怎么解决?
29.如果是DB实现分布式锁的话,主要思路是?有啥问题?怎么解决?
30.Redis 分布式锁的问题缺以及优化思路
31.Redis 热点key 的问题和优化处理
32.Redis中有一批key瞬间过期,为什么其它key的读写效率会降低?
33.Redis的zset底层什么时候是hash,什么时候是跳表?
34.Redis 数据结构有哪些,底层实现都是什么?
35.Redis 热key 是什么,有什么问题,怎么发现,怎么解决?
36.Redis 中底层是跳表结构,那么插入和查询一个数的流程如何?如果是单位查询,流程又是如何实现的?
(五)Spring相关面试问题整理
相关答案在这里逐步增加:高频面试题基本总结回顾(含笔试高频算法整理)
1.Spring Boot与以前的Spring有什么区别?
2.Spring Boot启动加载过程是什么样的?
3.Spring的IOC/AOP的实现(必考)
4.动态代理的实现方式(必考)是否使用过CGLiB,和JDK的区别是什么?
5.何时使用JDK还是CGLiB?如何强制使用CGLIB实现AOP?
6.Spring在选择用JDK还是CGLiB的依据是什么?CGlib比JDK快?
7.Spring如何解决循环依赖(三级缓存)(必考)
8.Spring中解决循环依赖为什么要用三级缓存,二级为什么不行呢?
9.spring能解决那些循环依赖、不能解决那些循环依赖,为什么?
10.Spring注入bean的方式有哪些(列举下你使用过的注入Bean的方式)?
11.Spring的后置处理器分析
12.BeanFactory和ApplicationContext的联系和区别
13.说说你对spring事务的理解?
14.Spring的@Transactional如何实现的(必考)
15.Spring的事务传播级别
16.Spring的事务隔离级别
17.Spring的事务失效场景分析
18.Spring的事务失效原因分析(必考)
19.Spring Cloud Zuul网关的调优策略有哪些?怎么实现其高可用?Zuul和Gataway,你们项目中是怎么选择的?项目中对Zuul网关层的要求是什么样的?
20.Spring Cloud Eureka和Nacos对比?怎么做选择?Eureka中高可用是怎么做的?进行的调优有哪些?原理是什么?
21.Spring Cloud 中常用的注解有哪些?怎么用的?
22.Spring Cloud中的组件有哪些?具体说说?微服务架构中用到的关键技术有哪些?
23.Spring Cloud Config配置架构是什么样的?可视化怎么做的?设计的业务有哪些?
(五)网络协议与编程IO相关面试问题整理
相关答案在这里逐步增加:高频面试题基本总结回顾(含笔试高频算法整理)
1.TCP三次握手过程?第三条丢了会怎样?有什么现象?(高频考点)
2.TCP连接中的四次挥手?四次挥手的最后一个ack的作用是什么?为什么要time wait,为什么是2msl?(高频考点)
5.HTTP报头格式是什么样的?实际中如何解析HTTP报头呢?
11.Rest和Http什么关系? 大家都说Rest很轻量,你对Rest风格如何理解?(高频考点)
14.说说http协议的多线程下载原理以及实现步骤?有啥优势?
17.了解session集群解决方案,通用解决方案?(高频考点)
20.基于BIO实现的Server端,当建立了100个连接时,会有多少个线程?如果基于NIO,又会是多少个线程? 为什么?
21.通常来说基于NIO实现的Server端,会用多少个线程去处理IO事件,为什么?
(六)设计模式相关面试问题整理
1.MyBatis设计模式应用分析高频面试题基本总结回顾(含笔试高频算法整理)
2.单例模式使用分析高频面试题基本总结回顾(含笔试高频算法整理)
3.代理模式使用分析高频面试题基本总结回顾(含笔试高频算法整理)
4.装饰器模式使用分析高频面试题基本总结回顾(含笔试高频算法整理)
5.模板模式使用分析高频面试题基本总结回顾(含笔试高频算法整理)
6.工厂模式和策略模式的综合使用分析高频面试题基本总结回顾(含笔试高频算法整理)
7.状态模式的使用分析高频面试题基本总结回顾(含笔试高频算法整理)
8.责任链模式(以及变种管道模式)使用分析高频面试题基本总结回顾(含笔试高频算法整理)
(七)消息中间件相关面试问题整理
相关答案在这里逐步增加:高频面试题基本总结回顾(含笔试高频算法整理)
1.用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗?
2.消息中间件的组成有哪些?
3.消息中间件模式分类有哪些?(必考)
4.分析消息中间件的普遍优势(必考)
5.消息中间件常用协议分析
6.消息队列应用场景分析(必考)
7.Kafka数据如何保证不丢失?(必考)
8.Kafka如何保证消息按顺序执行?(必考)
9.Kafka如何保证消息不重复消费?(必考)
10.Kafka如何保证消息队列的高可用?(必考)
11.Kafka 如何保证可靠性?(必考)
12.Kafka的文件存储机制
13.Kafka消息是采用Pull模式,还是Push模式?(必考)
14.Kafka是如何实现高吞吐率的?
15.Kafka判断一个节点还活着的两个条件?
16.Kafka采用的拉取模式还是推送模式?两者有啥区别?
17.如果流量突增导致MQ积压过高,该如何处理?
18. Kafka 什么情况下数据丢失?
19.Netty和kafka都是用了零拷贝,那么零拷贝究竟是怎么实现的?底层原理是?
20.导致MQ积压的原因有哪些?怎么应对?
(八)业务系统及其他相关面试问题整理
相关答案在这里逐步增加:高频面试题基本总结回顾(含笔试高频算法整理)
1.遇到线上相关问题怎么排查?
2.高并发系统的限流如何实现?
3.高并发秒杀系统的设计?
4.秒杀并发情况下库存为负数问题分析
5.实现一套负载均衡架构,如何思考设计?考虑哪些主要内容呢?
6.假如双十一等一些促销有高并发访问量要来访问我们的数据,怎么样做到可靠的服务?
7.一个黑名单集合,数据量很大,快速查询一个值是否在集合里,怎么设计?
8.一个网站有 20 亿 url 存在一个黑名单中,这个黑名单要怎么存?若此时随便输入一个 url,你如何快速判断该 url 是否在这个黑名单中?并且需在给定内存空间(比如:500M)内快速判断出。
9.设计题:钱包领券的架构设计。
10.春节红包的架构设计和容量设计
11.设计一个多级分类的表,然后组装数据返给前端
12.业务设计一个订单下单的流程,需要考虑哪些问题和使用哪些技术?如果有状态流转的话如何保证其有序性?
13.设计题:设计一种聊天模式,在该模式下用户A给用户B发送消息,在B没有回复消息前,A最多可以发送三条消息。实现思路是?具体实现是?
14.定时任务部署在多个服务器会重复执行,一般任务执行一次即可,如何设计保证可用性分析?
15.负载均衡的意义是?如何实现负载均衡呢?有哪些算法呢?4层负载均衡和7层负载均衡的区别是?
16.系统服务的幂等性实现分析?
17.怎么表达滑动窗口限流?
18.查询接口调优,不能用缓存,要求实时性,怎么调优?
19.现在用户要查询一张表,当流控降级时,兜底方案应该是怎么样的?
20.用户下订单,订单按什么字段分表?分表之后,如果想按照某个时间段查询指定时间段内的所有用户的订单怎么办?
21.给定一个内存区域用来停车,车可能有货车、轿车等,如何高效分配和设计?有哪些最优思考点?反思到程序的内存分配上,如何高效分配和管理内存呢?
22.给一个接口,入参是账户信息,出参是账户余额,问怎么设计接口?
23.学生选课系统做表设计分析,只聚焦在学生选课这个场景,最好说出表之间的关系分析
24.微博、微信朋友圈、头条的资讯推荐、快手抖音的视频推荐等,比如一条朋友圈状态、一条微博、一条咨询或一条短视频等发布,对应用户可以实时看到呢?
25.什么是读扩散与写扩散?有啥优缺点?
26.实现微信二维码扫码PC登录设计?
27.微信客户端之间怎么保持的连接?服务器怎么知道其在不在线?
28.连接池设计分析,从技术难点和实现上分析
29.熔断器设计思路,具体说明实现难点和注意事项
30.如何设计一个订单系统?
31.数据库设计题:要求设计一个合理的数据库模型,考虑数据库结构、索引设计、数据分片、读写分离、数据同步等问题。
32.分布式系统设计题:要求设计一个分布式系统,包括分布式任务调度、分布式锁、分布式ID生成等。
33.缓存设计题:要求设计一个高效的缓存系统,考虑缓存策略、缓存一致性、缓存穿透、缓存雪崩等问题。
34.基础架构设计题:要求设计一个稳定高效的基础架构,如负载均衡、高可用集群、服务发现与治理等。
35.微服务架构设计题:要求设计一个微服务架构,包括服务拆分、服务注册与发现、服务调用等。
36.数据结构与算法设计题:要求设计一个高效的算法,如排序算法、查找算法、图算法等。
37.项目中限流怎么做的?漏桶和令牌桶原理,使用的什么数据结构?并发下队列是否有性能问题?
38.Rpc和消息队列的优缺点,使用场景
39.如何设计rpc框架?你认为其相比其他框架的优点是什么?
40.一般讨论一个系统或服务的技术难点主要从哪些方面分析?
41.做一个商品敏感词系统所面临的技术难点和解决方案有哪些呢?
42.在设计一个接口的时候,我们重点关注的点有哪些?
43.服务器的请求转发了解吗?具体讲讲
44.微博评论数可能不准确,如何解决这个问题,因为一般都千人千面的那个人看到的都不一样
45.布隆过滤器为啥会误判,举例说明?
46.cpu 飘高的原因分析?生产环境中如何应对?
今天的文章高频考试_算法面试经典100题「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/75171.html