本文已经收录于https://github.com/fengdongdongwsn/architect-java

一、计算机基础

1、数据结构

(1)基本数据结构

  • 数据结构基本概念(时间复杂度和空间复杂度的计算方法)
  • 数组
  • 链表
  • 集合
  • 队列
  • 关联数组
  • 跳表
  • 倒排索引
  • BitSet

(2)树

  • 二叉树
  • 平衡二叉树
  • 完全二叉树
  • 哈弗曼树
  • 二叉查找树
  • B、B+、B*树
  • LSM树
  • 字典树
  • 红黑树
  • 线段树

(3)图

  • 最小生成树
  • 最短路径算法
  • 拓扑排序
  • 深搜和广搜

(4)排序算法

  • 选择排序
  • 冒泡排序
  • 插入排序
  • 快速排序
  • 归并排序
  • 希尔排序
  • 基数排序
  • 计数排序
  • 桶排序
  • 堆排序
  • 排序算法使用场景特点总结

(5)查找算法

  • 顺序查找
  • 二分查找
  • 插值查找
  • 斐波那契查找
  • 树表查找

(6)常见算法

  • KMP算法
  • 贪心算法
  • 回溯算法
  • 剪枝算法
  • 动态规划
  • 并查集
  • 朴素贝叶斯
  • 递归算法
  • 符号表
  • 布隆过滤器

2、计算机网络

(1)协议

  • OSI七层协议
  • TCP/IP协议
  • HTTP协议

(2)网络模型

  • 阻塞式IO
  • 非阻塞式IO
  • 复用IO
  • 信号驱动IO
  • 异步IO
  • Epoll模型
  • javaNIO
  • javaAIO
  • kqueue

(3)序列化

  • java序列化
  • protoBuf
  • protoStuff
  • avro
  • Hessian

3、操作系统

(1)基本知识

  • 操作系统的四个特征
  • 操作系统的功能

(2)进程与线程

  • 进程的概念与分类
  • 线程的概念与分类
  • 进程与线程的区别
  • 进行的状态转换
  • CPU调度算法
  • 管程
  • 协程
  • 进程间的通信方式
  • 进程间同步问题
    • 生产者消费者问题
    • 哲学家就餐问题
    • 读者-写者问题
    • 锁死的四个必要条件
    • 死锁处理

(3)内存管理

  • 段式管理
  • 页式管理
  • 段页式管理
  • 页面调度算法

(4)其他

  • 虚拟内存和逻辑内存
  • 静态链接和动态链接
  • 缓存
  • 僵尸进程与孤儿进程

二、java基础

1、面向对象基础

  • 继承
  • 封装
  • 多态
  • 接口
  • 抽象类

2、java集合

  • 总体框架
  • Collection
  • ArrayList
  • LinkedList
  • Vector
  • Stack
  • 快速失败和快速安全
  • HashMap
  • TreeMap
  • LinkedHashMap
  • HashSet
  • TreeSet
  • Hashtable
  • WeakHashMap

3、关键字和类

  • transient
  • instanceof
  • static
  • this
  • super
  • void
  • final
  • String
    • String为什么不可变
    • String、StringBuilder、StringBuffer区别
    • String到底新建了几个对象

4、java高级特点

  • 注解
  • 反射
  • 泛型
  • 异常
  • 枚举
  • IO机制
  • 编码转换
  • java8新特性
  • java11新特性

5、并发库

(1)并发基础

  • Thread生命周期
  • 线程安全问题
  • 线程通信模式
  • sleep和wait的区别
  • ThreadLocal

(2)原子特性

  • AtomicInteger
  • AtomicBoolean
  • AtomicStampedReference
  • Unsafe
  • CAS

(3)并发工具

  • CountDownLatch
  • CylicBarrier
  • Semaphore
  • Exchanger
  • Phaser
  • ForkJoin

(4)锁机制

  • synchronized
  • volatile
  • Reentrantlock
  • ReenReadWriteLock
  • StampedLock
  • 公平锁和非公平锁
  • 悲观锁和乐观锁
  • ABA问题
  • 互斥锁和共享锁
  • 可重入锁和不可重入锁
  • AQS机制
  • RingBuffer
  • 锁升级
  • 锁消除
  • 锁粗化

(5)并发容器

  • ConcurrentHashMap
  • ConcurrentSkipListMap
  • ConcurrentSkipSet
  • ConcurrentLinkedQueue
  • CopyOnWriteArrayList
  • 阻塞队列
  • 优先级队列

(6)线程池

  • 线程池的几种状态切换
  • 线程池的参数
  • 线程池的启动流程
  • 线程池的分类
  • 线程池的大小设置

6、JVM

  • java内存结构(jdk1.7和1.8)
  • 垃圾回收机制
  • 类加载机制
  • 内存分类和回收
  • 四种引用(强、软、弱、虚)
  • 内存溢出
  • JVM调优工具
  • 垃圾回收器
  • ZGC的认识
  • JNI
  • 内存逃逸

三、必备基础

1、设计模式

  • 创建型模式
  • 结构性模式
  • 行为性模式
  • 设计模式的六种原则
  • MVC模型
  • MVVC模型
  • UML
  • 康威定理

2、Linux

  • Linux目录结构
  • 常见命令
  • 文件系统管理
  • 用户系统管理
  • 进程管理
  • 网络管理
  • 备份与恢复
  • 文本文件处理命令
  • shell编程

3、代码工具

  • Git
  • Maven
  • gradle
  • 日志框架
  • Junit

四、数据库

1、mysql

(1)基本知识

  • 三大范式
  • 数据库、数据表、字段的增删改查基本操作
  • 分区表
  • 视图
  • 外键约束
  • 游标
  • 变量
  • 存储过程
  • 函数
  • 字符集

(2)存储引擎

  • InnoDB
  • MyISAM
  • 转换表的引擎

(3)事务

  • 隔离级别
  • 多版本并发工具
  • 分布式事务
  • ACID特性

(4)索引

  • 聚集索引
  • 非聚集索引
  • 复合索引
  • 底层实现原理

(5)锁

(6)测试

(7)优化方案

  • 数据类型优化
  • 索引优化
  • 查询性能优化
  • mysql配置优化
  • 硬件优化

(8)高可用方案

(9)复制迁移

2、Redis

  • 持久化机制
  • 缓存三种问题(穿透、击穿、雪崩)
  • 内存淘汰策略
  • 哨兵机制
  • 集群方案
  • 复制原理

3、MongoDB

4、Hbase

五、常用基本框架

1、servlet

2、Spring系列家族

3、Mybatis

4、JPA

5、Netty

6、websocket

六、运维统计相关

1、平台监控

  • zabbix、Nagios、Ganglia等
  • Linux命令监控:top、sar、tsar、nload等
  • JVM监控工具

2、APM

3、持续集成

  • 持续集成工具Jenkins
  • TeamCity
  • Travis CI
  • GitLab CI
  • 环境分离

4、容器相关

  • Docker
  • K8S

5、虚拟化

  • KVM
  • Xen
  • OpenVZ

6、自动化运维

  • Ansible
  • puppet
  • chef

7、测试

  • 单元测试
  • 压力测试
  • 灰度测试
  • A/B测试
  • 蓝绿测试
  • TDD测试理论
  • 全链路测试

七、中间件

1、web

  • Nginx
  • OpenRestry
  • Tengine
  • ApacheHttpd

2、服务器

  • Tomcat
  • Jetty
  • WebLogic
  • JBoss

3、缓存

  • 本地缓存
  • 客户端缓存
  • web缓存
  • Memcached
  • Redis
  • Tair
  • cellar

4、消息队列

  • Kafka
  • ActiveMQ
  • RocketMQ
  • RabbitMQ
  • Redis消息队列
  • ZeroMQ

5、RPC

  • Dubbo
  • Thrift
  • gRPC
  • java的RMI

6、定时任务

  • Quartz
  • cron定时调度
  • java定时任务
  • Elastic-job
  • opencron
  • LTS

7、数据库中间件

  • Mycat
  • Sharding Jdbc

8、搜索引擎

  • Lucene
  • Elasticsearch
  • Solr
  • sphinx

八、微服务

1、微服务框架

  • Springcloud
  • SpringCloud Alibaba
  • Dropwizard
  • Akka

2、注册中心

  • Eureka
  • Zookeeper
  • Consul

3、服务调用

  • Feigh
  • restTemplete

4、负载均衡

  • Ribbon

5、网关

  • Gateway
  • kong
  • zuul

6、配置中心

  • Zookeeper
  • Apollo
  • Springcloud Config

7、链路跟踪

  • SpringCloud Bus
  • SpringCloud Sleuth
  • Zipkin
  • Dapper
  • log-based
  • HTrace

九、分布式

1、分布式理论

  • CAP理论
  • BASE理论
  • 幂等性
  • 分布式锁
    • redis实现
    • 数据库实现
    • Zookeeper实现

2、一致性算法

  • Paxos
  • ZAB
  • Raft
  • Gossip
  • 两阶段提交协议
  • 节点选举策略
  • 一致性hash算法

3、分布式文件系统

  • HDFS
  • fastDFS

4、分布式ID

  • Snowflake算法
  • Flicker算法
  • UUID
  • MongoDB实现

5、分布式事务

  • 多阶段提交
  • TCC补偿事务
  • 本地消息表
  • MQ事务消息
  • 最大努力通知

6、稳定性高可用方案

  • 软硬件负载均衡
  • 限流
  • 容灾
  • 平滑启动

十、安全

1、web安全

  • XSS
  • CRSF
  • SQL注入
  • DDOS
  • DNS***
  • 脚本注入
  • 序列化***
  • 中间人***

2、加密解密算法

  • 对称加密
  • 非对称加密
  • hash算法
  • 数字签名
  • Base64

3、框架

  • Shiro
  • SpringSecurity

4、授权认证

  • RBAC
  • OAuth2.0
  • OIDC
  • SAML
  • TLS全链路加密
  • JWT用户认证
  • Check前置检查
  • Quota配额管理
  • Telemetry遥测报告
  • 双因素认证(2FA)
  • 单点登录SSO

十一、项目管理

1、开发设计

  • DDD领域驱动模型
  • Actor模式
  • 响应式编程
  • DODAF2.0
  • Serverless
  • Service Mesh

2、项目管理

  • 代码规范
  • 敏捷开发
  • 极限编程
  • 结对编程
  • RUP
  • SCRUM
  • PDCA循环质量管理
  • FMEA管理模式

3、架构管理

  • DevOps
  • OpenGroup
  • ABSD架构方法论
  • 架构设计原则
  • 异地多活
  • Knative弹性伸缩

十二、大数据云计算

1、流式计算

  • storm
  • Flink
  • KafkaStream

2、Hadoop

  • HDFS
  • MapReduce
  • Yarn
  • Spark

十三、开发工具

  • IDEA
  • VSCode
  • VIM
  • Gitlab
  • Navicat
  • XShell
  • postman
  • Filezilla
  • Fiddler

十四、学习资源

1、视频网站

  • B站
  • 慕课网
  • 中国大学MOOC网

2、博客社区

  • CSDN
  • 开源中国
  • 简书
  • 思否
  • 掘金
  • 博客园
  • 阿里云社区
  • 开发者头条
  • Medium

3、技术手册

  • W3Cschool
  • Runoob.com
  • 慕课网教程手册

4、行业资讯

  • 知乎
  • stackoverflow

5、代码托管

  • github
  • gitee
  • coding

6、电子书网站

  • gitbook
  • aibooks
  • 书栈网
  • 搬书匠
  • 鸠摩搜索
  • IT-ebooks国外免费

7、程序员交流网站

  • V2EX
  • 知乎

8、云服务器

  • 阿里云
  • 腾讯云
  • 百度云
  • 华为云
  • 七牛云
  • 西部数据
  • 金山云

9、面试刷题

  • LinkCode
  • LeetCode
  • 牛客网

10、找工作

  • 100offer
  • 拉勾网

11、数据资源下载

  • 国家数据
  • MSDN
  • PUDN
  • OPSX阿里巴巴开源镜像
  • TUNA清华开源软件
  • 163网易开源镜像

12、编程外包

  • 大神部落
  • 程序员客栈
  • 码市
  • 开源众包


更多相关文章

  1. 大厂算法面试真题汇总
  2. 多线程之死锁就是这么简单
  3. 线程池你真不来了解一下吗?
  4. LockSupport:一个很灵活的线程工具类
  5. 源码实战 | 从线程池理论聊聊为什么要看源码
  6. 多线程学习(三)那些队列可用于线程池
  7. 多线程学习(三)多线程开发带来的问题与解决方法

随机推荐

  1. Android歌词秀设计思路(6)运用Proxy设计模
  2. android uiautomator自己主动化測试
  3. 【Android studio】 新建项目后报错:Could
  4. Android自己主动化測试解决方式
  5. android之socket编程实例
  6. Android的FrameLayout布局介绍
  7. Linux通过shell脚本实现JDK版本之间的快
  8. android快捷键
  9. Android设置权限问题
  10. Android有两种方法检测USB设备插入