记录面试题

  1. 自我介绍

  2. 口述反转链表的实现

  3. 说说 Lambda 表达式

  4. 缓存雪崩,缓存击穿,缓存穿透

  5. 缓存一致性

  6. Redis 的持久化机制

  7. MySQL 的语句执行顺序

  8. 事务隔离级别以及 MVCC 实现原理

  9. 事务失效的场景

  10. CAS 以及存在的问题

  11. SpringBoot 自动装配原理

  12. AOP 应用

  13. 说说 SpingBoot 在开发中的常见注解

  14. JVM 的类加载机制

  15. RabbitMQ 的五种工作模式

  16. 挖项目(25 min 左右)

说说项目的架构以及技术选型,细节方面(Gateway 网关,RPC 框架,SDK 的开发步骤)——API 项目

如何实现的滚动分页查询,简单说说分布式锁实现原理,RabbitMQ 异步下单,如何解决缓存击穿——点评项目

 

  1. 无重复字符的最长子串

  2. 买卖股票的最佳时机

  3. HTTP 0.9 ~ HTTP 3.0 的发展历程

  4. HTTP 和 HTTPS 的区别

  5. OSI 七层模型是什么

  6. TCP 与 UDP 的区别

  7. 虚拟内存

  8. 进程间的通信方式

  9. 进程和线程的区别

  10. JVM 的类加载机制,并说说每个类加载器加载什么

  11. JVM 的内存区域

  12. synchronized 的实现原理

  13. 反问面试官问题

 

  1. Sping 和 SpringBoot 区别

  2. 说说自动装配的原理

  3. Bean 的生命周期

  4. 缓存击穿和缓存雪崩以及对应的解决方法

  5. 什么场景下使用分布式锁,设计一个分布式锁(参数以及实现过程)  redis 底层如何实现的分布式锁

  6. 说说平常设计数据库表的字段

  7. 数据库的索引数据结构

  8. B+Tree 索引的底层原理以及是如何保证平衡的

  9. ThreadLocal 的使用场景以及常见问题

  10. 内存泄漏如何排查

  11. young GC和Full GC 的区别以及为什么这样设计

  12. https 实现原理(SSL 认证过程)

  13. POST 和 GET 请求的区别,POST 和 PUT 请求的区别(以及什么情况下使用 POST,PUT,GET)

  14. 说一说什么是幂等性,产生幂等性的场景,以及幂等性的解决方案(例如交易订单的幂等性问题,需要什么字段)

  15. 支付宝在支付的时候,最开始余额不够,支付下单失败,后来转入钱后就可以下单,让我如何解决这种幂等性问题(大概这意思,当时忘录音了)

  1. 项目遇到的问题?

  2. zookeeper 和 nacos

  3. 分布式锁(深挖)

  4. Zset 的底层数据结构是什么?底层实现原理,跳表

  5. Redis 持久化机制

  6. 缓存一致性

  7. 为什么用滚动分页

  8. 深度分页

  9. MySQL 原子性

  10. MySQL 间歇锁

  11. 回表概念

  12. 索引下推

  13. 联合索引的最左前缀匹配

  14. 创建(a,b,c)联合索引,where a > 0 and b = 0 and c < 0。这种情况是走a索引回表之后判断b和c,还是走 ab 索引或者走 abc 索引?

  15. Sping 中事务使用场景

  16. Stram 流的 filter

  17. Spring 初始化 bean 的三种方式

  18. 设计模式了解过哪些,说说策略模式

加快,就可以从索引覆盖、聚集索引、二级索引切入了)

25.什么情况下需要建索引

通过慢查询判断 sql 慢的时候

26.慢查询指令说一下

show variables like '%slow_query_log';

27.查询单条 sql 是否走索引应该用什么关键字

explain

28.数据库的锁说一下

行锁、表锁、全局锁。共享锁、排他锁、意向锁。

update、delete、insert、select for update 加排他锁,select lock in shard mode 加共享锁,普通 select 不加锁

29.开发的时候什么情况下会产生锁和锁冲突

行锁、意向锁、表锁、共享锁、排他锁

参考回答:

在 MySQL 中,当一个事务正在对一行数据进行修改时,如果另外一个事务也要对该行数据进行修改,就会产生锁冲突。此时,MySQL 会自动给其中一个事务加锁,使其等待另一个事务执行完毕后再继续执行。产生锁和锁冲突的情况如下:

  • 行锁冲突:当多个事务同时修改同一行数据时,就会产生行锁冲突。

  • 表锁冲突:当多个事务同时修改同一张表的不同数据行时,也会产生表锁冲突。

  • 死锁:当多个事务同时持有资源(如行锁或表锁)并互相等待对方释放资源时,就会产生死锁。

其他情况:如使用 LOCK TABLES 等语句主动加锁时也会产生锁。

为避免锁和锁冲突,开发人员应该尽量避免使用不必要的锁,避免长时间占用资源,并合理设置事务隔离级别等参数,保证事务的正确性和并发性。

30.后端的性能优化有哪些方面?从影响性能的方面考虑一下。上线之后有一个接口响应特别慢,从哪里开始排查,有哪些切入点

完全不了解

参考回答:

后端性能优化可以从以下几个方面考虑:

  • 数据库性能优化:对 SQL 语句进行优化,增加索引,减少锁的使用等;

  • 系统配置优化:优化服务器硬件配置,调整操作系统参数,合理分配资源等;

  • 代码质量优化:消除代码中的资源浪费,减少重复计算,优化算法等;

  • 缓存优化:增加缓存机制,减少 IO 操作,加速数据访问等;

  • 并发控制优化:采用线程池,减少线程上下文切换,采用锁的优化机制等;

对于一个接口响应特别慢的问题,可以从以下几个方面排查:

  • 查看系统日志,分析是否存在异常,如是否有大量的 GC、OOM 等情况;

  • 使用监控工具对系统 CPU、内存、IO 等指标进行监控,查看是否存在性能瓶颈;

  • 查看数据库执行计划,分析 SQL 语句的性能;

  • 对代码进行分析,查找是否存在死循环、重复计算、资源浪费等情况;

  • 查看系统线程的情况,是否存在线程池拒绝服务等情况。

针对性能问题,可以从以上方面入手,逐步定位问题,并进行优化。

31.什么时候用缓存?Redis 是什么数据库?数据存在哪里

性能优化的时候可以考虑使用缓存,举例子;nosql;内存,也可以持久化,aof,rdb

32.如何从业务逻辑角度进行优化

其实提示我了,可以从 redis 的穿透、穿刺、雪崩三个角度去讲,也可以从 sql 的索引优化去讲。可惜当时还是太紧张了

33.java的业务逻辑实现在哪一层

service层

34.service 层的代码怎么去优化,怎么方式去写会有性能问题

完全不理解

参考回答:

  1. mysql 数据量大怎么进行优化

分库分表,没背

参考回答:

  1. git 出现代码冲突怎么处理 没了解

参考回答:

  1. git 和 sdk 的区别 没了解

参考回答:

  1. git 的分支什么时候用 开发、测试、上线不同的分支发布

  2. 说一下 springcloud 的理解,说一下 springcloud 和 spring boot 的理解

没了解,回答了 springcloud 是分布, springboot 是单体,讲了 springcloud 用了 nacos、feign、gateway 组件

参考回答:

40.我们什么时候使用 springcloud

没了解

参考回答:

41.说一下mp

说了简单模式、工作队列模式、发布订阅、路由模式、通配符模式

42.有没有关注技术网站

掘金

43.码云和 github 是否有关注

有,但是不多

44.前端有了解过吗?vue 了解吗

不了解,html 有用过,js 用过一下

  1. 问对哪个项目熟悉,为什么想要用java去写关系型数据库?

  2. 这个数据库体现了Spring的事务传播机制吗?

  3. 可重复读,已提交读,这两个隔离级别表现的现象是什么,区别是什么样的?

  4. 数据管理里,数据文件大体分成哪几种数据文件?

  5. 日志文件是分成了哪几种?

  6. 说下MVCC机制的原理?

  7. 索引的类型有哈希索引,B+树索引,而hash索引的时间复杂度是o1,那为什么我们一般情况下不使用哈希索引,而使用b+树索引呢?

  8. 对一个慢sql怎么去排查?

  9. 索引字段是不是建的越多越好?

  1. java这一块对框架都是熟悉的吧?

  2. MyBatis运用了哪些常见的设计模式?

  3. MyBatis中创建了一个Mapper接口,在写一个xml文件,java的接口是要实现的,为什么这没有实现呢?

  4. 与传统的JDBC相比,MyBatis的优点?

  5. 还记得JDBC连接数据库的步骤吗?

  6. 怎么理解SpringIoc?

  7. 如果让你设计一个SpringIoc,你觉得会从哪些方面考虑这个设计?

  8. Spring给我们提供了很多扩展点,这些有了解吗?

  9. servlet有写过简单的代码吗?

  10. 大致了解SpringMVC的处理流程吗?

  11. Handlermapping 和 handleradapter有了解吗?

  12. SpringAOP主要想解决什么问题

  13. SpringAOP的原理了解吗

  14. 动态代理和静态代理的区别

  15. 代理模式和适配器模式有什么区别?

  16. java线程的生命周期有了解吗?

  17. 使用多线程要注意哪些问题?

  18. 保证数据的一致性有哪些方案呢?

  19. 线程池有了解吗?线程池大概的原理?

  20. ArrayList和LinkedList有什么区别

  21. 对面向对象的理解?

网络

  1. http协议的报文的格式有了解吗?

  2. http常用的状态码?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值