admin管理员组

文章数量:1794759

【Java面试】:第三章:P6级面试

【Java面试】:第三章:P6级面试

互联网 Java 工程师知识扫盲 个人介绍

我是廖志伟,一名java开发工程师,CSDN博客专家,多年一线研发经验,曾就职多家互联网公司,任Java开发工程师职位,参与多个千万级并发互联网产品研发,对大型分布式,高并发及微服务架构有非常深入研究。

项目说明

本项目内容来自廖志伟整理与编写,内容涵盖Java基础、框架、设计模式、缓存、多线程、分布式事务、数据库、JVM、锁、高并发、分布式、高可用、微服务、海量数据处理等领域知识。我对这部分知识做了一个系统的整理,方便学习查阅。下面的内容可在我的gitee仓库进行查看:远程仓库地址:gitee/java_wxid/Java-knowledge-system-induction

内容模块
  • Java基础
  • 框架
  • 设计模式
  • 缓存
  • 多线程
  • 分布式事务
  • 数据库
  • JVM
  • 消中间件
  • 搜索引擎
  • 海量数据处理
  • 解决问题的能力
  • 网络
  • Netty
  • 功能模块设计
  • Java基础 HashMap
    • HashMap底层原理?
    • HashMap扩容机制?
    • HashMap加载因子为什么是0.75?
    • HashMap为什么会发生并发修改异常?并发修改异常解决方案?
    • 为什么jdk8以后HashMap会使用红黑树优化?
    • ConcurrentHashMap底层实现?
    • CAS,ABA,volatile这些是什么?
    框架 Spring
    • Spring IOC,Spring AOP?
    • Springbean的生命周期?
    • 如何解决循环依赖?
    • 父子容器?
    • 事务实现原理?
    • 动态代理原理?
    • Spring MVC工作原理?
    • Spring如何实现事务?
    Mybatis
    • Mybatis框架优点?
    Dubbo
    • 说一下 Dubbo 的工作原理?注册中心挂了可以继续通信吗?
    • Dubbo 支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?
    • Dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?
    • 为什么需要服务治理?如何基于 Dubbo 进行服务治理、服务降级、失败重试以及超时重试?
    • 分布式服务接口的幂等性如何设计(比如不能重复扣款)?
    • 分布式服务接口请求的顺序性如何保证?
    • 如何自己设计一个类似 Dubbo 的 RPC 框架?
    • Dubbo特性?
    • Dubbo SPI 和 Java SPI 区别?
    • Dubbo 用到哪些设计模式?
    • 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 Dubbo 可以吗?
    Zookeeper
    • Zookeeper底层原理?
    • 选举机制?
    • Zookeeper脑裂问题?
    • Zookeeper假死问题?
    • Zookeeper分布式锁?
    • Zookeeper客户端与集群问题?
    • ZooKeeper典型使用场景?
    SpringCould
    • 什么是微服务?
    • 常用组件底层实现?
    • 服务发现组件 Eureka 的主要调用过程?Eureka 和 Zookeeper 都可以提供服务注册与发现的功能,它们有什么区别?
    • 什么是熔断?什么是服务降级?
    • 熔断框架如何做技术选型?选用 Sentinel 还是 Hystrix?
    • 如何限流?在工作中是怎么做的?说一下具体的实现?
    • Spring Boot 和 Spring Cloud,谈谈你对它们的理解?
    • Spring Cloud 和 Dubbo 有哪些区别?
    设计模式 设计模式
    • 23种设计模式有哪些?
    • 讲讲你熟悉的几个设计模式底层实现原理?
    缓存 Redis
    • 单线程模型?
    • Redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?
    • Redis 集群模式的工作原理能说一下么?在集群模式下,Redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?如何动态增加和删除一个节点?
    • Redis 的并发竞争问题是什么?如何解决这个问题?了解 Redis 事务的 CAS 方案吗?
    • 生产环境中的 Redis 是怎么部署的?
    • 数据类型的应用场景?
    • 数据类型的底层数据结构sds?
    • 一致性hash?
    • 布隆过滤器?
    • 数据同步问题(双删策略)?
    • 击穿、穿透、雪崩、数据一致性?
    • 高并发下的redis分布式锁?
    • 热点数据缓存问题?
    • 哨兵机制,集群架构?
    • 生产环境性能优化?
    • Redis 的过期策略都有哪些?手写一下 LRU 代码实现?
    • 如何保证 Redis 高并发、高可用?Redis 的主从复制原理能介绍一下么?Redis 的哨兵原理能介绍一下么?
    • Redis 主从架构是怎样的?
    多线程 多线程
    • 线程池实现原理?
    • 线程池七大核心参数?
    • 线程池如何合理的配置核心线程数?
    • 线程池拒绝策略?
    • JUC并发包?
    • ThreadLocal的使用场景和原理?
    • 线程的生命周期,什么时候会出现僵死进程?
    分布式事务 分布式事务
    • CAP理论?
    • BASE理论?
    • 两阶段提交(2PC)?
    • 三阶段提交(3PC)?
    • 补偿事务(TCC)?
    • 本地消表(异步确保)?
    • MQ 事务消?
    • 最大努力通知?
    • TCC 如果出现网络连不通怎么办?XA 的一致性如何保证?
    分布式会话
    • 集群部署时的分布式 Session 如何实现?
    数据库 数据库
    • 数据库事务隔离级别?
    • 四大属性底层实现原理?
    • 传播行为?
    • 悲观锁、乐观锁、排它锁、共享锁、表级锁、行级锁,死锁检测?
    • 索引数据结构?
    • 主从问题?
    • SQL的整个解析、执行过程原理、SQL行转列?
    • 如何优化SQL?
    读写分离
    • 如何实现 MySQL 的读写分离?MySQL 主从复制原理是啥?如何解决 MySQL 主从同步的延时问题?
    分库分表
    • 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?
    • 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?
    • 如何设计可以动态扩容缩容的分库分表方案?
    • 分库分表之后,id 主键如何处理?
    JVM JVM
    • JVM算法?
    • 垃圾收集器?
    • 垃圾回收机制?
    • JMM和JVM内存模型?
    • JVM调优?
    • 双亲委派机制?
    • 堆溢出,栈溢出,方法区溢出?
    • 你都有哪些手段用来排查内存溢出??
    • 常见的JVM调优方法有哪些?可以具体到调整哪个参数,调成什么值??
    • 各种oom的种类?
    锁 锁
    • 公平锁,非公平锁?
    • 可重入锁,递归锁?
    • 自旋锁?
    • 读写锁?
    • 死锁?
    • 分布式锁?
    • AQS实现原理?
    • Synchronized是如何从轻量级锁到重量级锁?
    消中间件 消中间件
    • 为什么使用消队列?消队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?
    • 如何保证消队列的高可用?消丢失?
    • 如何保证消不被重复消费?(如何保证消消费的幂等性)
    • 如何保证消的可靠性传输?(如何处理消丢失的问题)
    • 如何保证消的顺序性?
    • 如何解决消队列的延时以及过期失效问题?消队列满了以后该怎么处理?有几百万消持续积压几小时,说说怎么解决?
    • 如果让你写一个消队列,该如何进行架构设计啊?说一下你的思路。
    搜索引擎 搜索引擎
    • ES 的分布式架构原理能说一下么(ES 是如何实现分布式的啊)?
    • ES 写入数据的工作原理是什么啊?ES 查询数据的工作原理是什么啊?底层的 Lucene 介绍一下呗?倒排索引了解吗?
    • ES 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?
    • ES 生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?
    海量数据处理 海量数据处理
    • 如何从大量的 URL 中找出相同的URL?
    • 如何从大量数据中找出高频词?
    • 如何找出某一天访问百度网站最多的IP?
    • 如何在大量的数据中找出不重复的整数?
    • 如何在大量的数据中判断一个数是否存在?
    • 如何查询最热门的查询串?
    • 如何统计不同电话号码的个数?
    • 如何从 5 亿个数中找出中位数?
    • 如何按照 query 的频度排序?
    • 如何找出排名前 500 的数?
    解决问题的能力 解决问题的能力
    • Linux常用命令,生产环境服务器变慢诊断,线上排查,性能评估?
    • 如何快速定位一个项目跑的慢的原因在哪?
    网络 网络
    • http,tcp,https,udp,7层网络协议?负载均衡算法
    Netty Netty
    • bio,nio ,aio
    • 零拷贝?
    • 核心组件?
    • I/O 多路复用(epoll)?
    • netty架构设计怎么样子的?
    功能模块 功能模块
    • 幂等性实现
    • 单点登录
    • 金额篡改问题
    • 秒杀场景设计
    • 库存超卖问题

    本文标签: 第三章java