Bo 的博客

关键词

Interviews

9 篇文章

  1. JVM篇image-20230725230735365 JVM组成 什么是程序计数器 线程私有的,内部保存的字节码行号。用于记录正在执行的字节码指令的地址。 堆 线程共享的区域:主要用来存储对象、数组等,当堆中没有内存空间可分配给实例,也无法扩展时
  2. 并发编程篇线程的基础知识 线程和进程的区别 进程的正在运行程序的实例,一个进程包含了多个线程,每个线程执行不同的任务。 不同的进程使用不同的内存空间,当前进程下的线程可以共享内存空间。 线程更加轻量,线程上下文切换成本一般会比进程的上下文切换低。 并
  3. 集合篇Collection 单列集合 List 有序可重复 Vector 数组结构,线程安全 ArrayList 数据结构,非线程安全 ArrayList底层的实现原理是什么? 底层是用动态数组实现的。 初始容量为0,当第一次添加数据的时候才会初
  4. 消息中间件篇消息中间件使用场景 异步发送(验证码,短信,邮件) MySQL和Redis,ES之间的数据同步 分布式事务(最终一致性) 作为发布/订阅系统实现一个微服务系统间的观察者模式。 连接流计算任务和数据。 用于将消息广播给大量的接收者,数据同步。
  5. 微服务篇Spring Cloud Spring Cloud组件有哪些? 注册中心:Eureka/Nacos。 负载均衡:Ribbon。 服务熔断:Hystix/Sentinel。 远程调用:Feign。 服务网关:Zuul/Gateway。 服务注
  6. MyBatis篇执行流程 读取MyBatis配置文件:mybaits-config.xml加载运行环境和配置文件。 创建会话工厂SqlSessionFactory。 会话工厂创建SqlSession对象。(包含了执行SQL语句的所有方法)。 操作数据库的接
  7. Spring篇Spring Bean线程安全问题 Spring中的Bean默认是单例的。可以使用@Scope注解设置将属性设置成prototype变成多例。 Spring中的Bean不是线程安全的。 Spring Bean并没有可改变状态(例如Servi
  8. MySQL篇优化 定位慢查询 聚和查询 多表查询 表数据量过大查询 深度分页查询 表现:页面加载过慢、接口测压响应时间过长(超过1s) 如何定位 开源工具 调试工具:Arthas 运维工具:Prometheus、Skywalking MySQL自带慢日
  9. Redis篇Redis有哪些使用场景? 一、缓存穿透 例如查询根据文章,通常情况下,应该是先查redis,若redis中有,则直接返回。若redis中没有,那么就需要去数据库中查,从数据库中查到数据后,将数据保存到redis中,然后再返回给客户端。 这