JAVA知识图谱

1 JAVA 基础

1.1 算法

  直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序

  二叉查找树、红黑树、B树、B+树、LSM树

  BitSet、LRU、LFU、KMP

1.2 基础

  字符串常量池的迁移

  string的intern方法的内部细节,jdk1.6和jdk1.7的变化

  equals和hashcode

  泛型、异常、反射

  hash冲突的解决办法

  foreach循环的原理

  static、final、transient等关键字的作用 

  volatile关键字的底层实现原理

  Collections.sort方法使用的是哪种排序方法

  Future接口,常见的线程池中的FutureTask实现等 

1.3 设计模式与设计原则

  单例模式

  工厂模式

  装饰者模式

  观察者设计模式

  ThreadLocal设计模式

   

1.4 正则表达式

  捕获组和非捕获组

  贪婪,勉强,独占模式

1.5 java内存模型以及垃圾回收算法

  类加载机制,也就是双亲委派模型

  java内存分配模型(默认HotSpot)

    线程共享的:堆区、永久区 线程独享的:虚拟机栈、本地方法栈、程序计数器

  内存分配机制:年轻代(Eden区、两个Survivor区)、年老代、永久代以及他们的分配过程

  happens-before规则

  指令重排序、内存栅栏

  Java 8的内存分代改进

  垃圾回收算法(标记-清除\复制算法\标记整理)

  常用垃圾收集器(新生代\老年代)

  常用gc的参数

  常用工具(jps、jstat、jmap、jstack、图形工具jConsole、Visual VM、MAT、jprofiler)

1.6 锁以及并发容器的源码

  synchronized和volatile理解

  Unsafe类的原理,使用它来实现CAS。因此诞生了AtomicInteger系列等

  CAS可能产生的ABA问题的解决,如加入修改次数、版本号

  同步器AQS的实现原理

  独占锁、共享锁;可重入的独占锁ReentrantLock、共享锁 实现原理

  公平锁和非公平锁

  读写锁 ReentrantReadWriteLock的实现原理

  LockSupport工具

  Condition接口及其实现原理

  HashMap、HashSet、ArrayList、LinkedList、HashTable、ConcurrentHashMap、TreeMap的实现原理

  HashMap的并发问题

  ConcurrentLinkedQueue的实现原理

  Fork/Join框架

  CountDownLatch和CyclicBarrier

1.7 线程池源码

  内部执行原理

  各种线程池的区别

2 web方面

2.1  SpringMVC的架构设计

   SpringMVC对请求的整体处理流程

   DispatcherServlet、容器、组件三者之间的关系

   SpringBoot

2.2 SpringAOP源码

   AOP的实现分类

   AOP实现方式(AOP联盟、aspectj、jboss AOP、Spring自身实现的AOP、Spring嵌入aspectj)

   SpringAOP的调用流程

   SpringAOP自定义实现(ProxyFactoryBean\aspectj)

2.3 Spring事务及分布式事务Jotm Atomikos

  jdbc事务存在的问题

  事务的挂起和恢复的原理

  事务的传播属性

  

  Spring如何定义事务体系的接口 以及如何融合jdbc事务和Hibernate事务的

  Spring事务拦截器TransactionInterceptor全景

  事务代码同业务代码分离的实现(AOP+ThreadLocal)

  

   X/Open DTP模型,两阶段提交,JTA接口定义

   Jotm、Atomikos的实现原理

   

   PROPAGATION_REQUIRES_NEW、PROPAGATION_NESTED的实现原理以及区别

   事务模型

2.4 数据库隔离级别

   读未提交、读已提交、可重复读、串行化

2.5 数据库

   数据库性能的优化

   死锁(Record Locks、Gap Locks、Next-Key Locks)

   insert into select语句的加锁情况 

   事务的ACID特性概念

   innodb的MVCC理解

   undo redo binlog

2.6 ORM框架: mybatis

   

2.7 SpringSecurity、shiro、SSO

2.8 datasource

    (c3p0\druid\jdbcTemplate) 

2.9 http协议&https实现原理

    http 三次握手与四次挥手

    http状态码  301 302 405 

    https实现原理

3 分布式方面

3.1  ZooKeeper

  客户端架构

  服务器端单机版和集群版,对应的请求处理器

  集群版session的建立和激活过程

  Leader选举过程及实现

  ZAB协议实现一致性原理

  实现分布式锁、分布式ID分发器 

  事务日志和快照文件的详细解析

3.2 序列化和反序列化框架

  Avro研究

  Thrift研究

  Protobuf研究

  Protostuff研究

  Hessian

3.3 RPC框架dubbo源码

  dubbo扩展机制的实现(对比SPI机制)

  服务的发布过程

  服务的订阅过程

  RPC通信的设计

3.4 NIO模块(Netty和Mina、thrift源码)

  TCP握手和断开及有限状态机

  backlog

  BIO NIO

  阻塞/非阻塞的区别、同步/异步的区别

  阻塞IO、非阻塞IO、多路复用IO、异步IO

  Reactor线程模型

  jdk的poll、epoll与底层poll、epoll的对接实现

  Netty自己的epoll实现

  内核层poll、epoll的大致实现

  epoll的边缘触发和水平触发

  Netty的EventLoopGroup设计

  Netty的ByteBuf设计

  Netty的ChannelHandler

  Netty的零拷贝

  Netty的线程模型

3.5 消息队列kafka、RocketMQ、Notify、Hermes、flume

  kafka的文件存储设计

  kafka的副本复制过程

  kafka副本的leader选举过程

  kafka的消息丢失问题

  kafka的消息顺序性问题

  kafka的isr设计和过半对比

  

  Notify、RocketMQ的事务设计

  基于文件的kafka、RocketMQ和基于数据库的Notify和Hermes

  设计一个消息系统要考虑哪些方面

  丢失消息、消息重复、高可用等话题  

3.6 数据库的分库分表mycat

3.7 NoSql数据库mongodb

3.8 缓存系统memcached redis

  memcached redis 的区别

  redis对客户端的维护和管理,读写缓冲区

  redis事务的实现

  Jedis客户端的实现

  JedisPool以及ShardedJedisPool的实现

  redis epoll实现,循环中的文件事件和时间事件

  redis的RDB持久化,save和bgsave

  redis AOF命令追加、文件写入、文件同步到磁盘

  redis AOF重写,为了减少阻塞时间采取的措施

  redis的LRU内存回收算法

  redis的master slave复制

  redis的sentinel高可用方案

  redis的cluster分片方案

3.9 web服务器tomcat、ngnix的设计原理

  tomcat的整体架构设计

  tomcat对通信的并发控制

  http请求到达tomcat的整个处理流程

3.10  ELK日志实时处理查询系统(Elasticsearch、Logstash、Kibana)

3.11 服务化方面

  SOA与微服务

  服务的合并部署、多版本自动快速切换和回滚

  服务的治理:限流、降级

  服务的线性扩展(Redis的扩展:一致性hash,迁移工具)

  服务链路监控和报警:CAT、Dapper、Pinpoint

3.12 Spring Cloud

  Spring Cloud Zookeeper:用于服务注册和发现

  Spring Cloud Config:分布式配置

  Spring Cloud Netflix Eureka:用于rest服务的注册和发现

  Spring Cloud Netflix Hystrix:服务的隔离、熔断和降级

  Spring Cloud Netflix Zuul:动态路由,API Gateway

3.13 分布式事务

  JTA分布式事务接口定义,对此与Spring事务体系的整合

  TCC分布式事务概念

  TCC分布式事务实现框架案例1:tcc-transaction

  TCC分布式事务实现框架案例2:ByteTCC

3.14 一致性算法

  raft

  ZooKeeper

  paxos

转自

https://maimai.cn/article/detail?fid=103467612

猜你喜欢

转载自xiangxingchina.iteye.com/blog/2372986