└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # :star:《java小白到架构师技术图谱》 2 | 3 | **本文整理于github上各大star大神仓库。并根据自己的理解重新进行了整理** 4 | 5 | > **本文持续更新中** 6 | > 7 | > [100本java经典电子书百度网盘链接](https://github.com/dahuoyzs/javapdf) 8 | > 9 | > 本文收录于https://github.com/fengdongdongwsn/architect-java 10 | 11 | ## 一、计算机基础 12 | 13 | ### 1、数据结构 14 | 15 | #### (1)基本数据结构 16 | 17 | - 数据结构基本概念(时间复杂度和空间复杂度的计算方法) 18 | - 数组 19 | - 链表 20 | - 集合 21 | - 队列 22 | - 栈 23 | - 关联数组 24 | - 跳表 25 | - 倒排索引 26 | - BitSet 27 | 28 | #### (2)树 29 | 30 | - 二叉树 31 | - 平衡二叉树 32 | - 完全二叉树 33 | - 哈弗曼树 34 | - 二叉查找树 35 | - B、B+、B*树 36 | - LSM树 37 | - 字典树 38 | - 红黑树 39 | - 线段树 40 | 41 | #### (3)图 42 | 43 | - 最小生成树 44 | - 最短路径算法 45 | - 拓扑排序 46 | - 深搜和广搜 47 | 48 | #### (4)排序算法 49 | 50 | - 选择排序 51 | - 冒泡排序 52 | - 插入排序 53 | - 快速排序 54 | - 归并排序 55 | - 希尔排序 56 | - 基数排序 57 | - 计数排序 58 | - 桶排序 59 | - 堆排序 60 | - 排序算法使用场景特点总结 61 | 62 | #### (5)查找算法 63 | 64 | - 顺序查找 65 | - 二分查找 66 | - 插值查找 67 | - 斐波那契查找 68 | - 树表查找 69 | 70 | #### (6)常见算法 71 | 72 | - KMP算法 73 | - 贪心算法 74 | - 回溯算法 75 | - 剪枝算法 76 | - 动态规划 77 | - 并查集 78 | - 朴素贝叶斯 79 | - 递归算法 80 | - 符号表 81 | - 布隆过滤器 82 | 83 | ### 2、计算机网络 84 | 85 | #### (1)协议 86 | 87 | - OSI七层协议 88 | - TCP/IP协议 89 | - HTTP协议 90 | 91 | #### (2)网络模型 92 | 93 | - 阻塞式IO 94 | - 非阻塞式IO 95 | - 复用IO 96 | - 信号驱动IO 97 | - 异步IO 98 | - Epoll模型 99 | - javaNIO 100 | - javaAIO 101 | - kqueue 102 | 103 | #### (3)序列化 104 | 105 | - java序列化 106 | - protoBuf 107 | - protoStuff 108 | - avro 109 | - Hessian 110 | 111 | ### 3、操作系统 112 | 113 | #### (1)基本知识 114 | 115 | - 操作系统的四个特征 116 | - 操作系统的功能 117 | 118 | #### (2)进程与线程 119 | 120 | - 进程的概念与分类 121 | - 线程的概念与分类 122 | - 进程与线程的区别 123 | - 进程的状态转换 124 | - CPU调度算法 125 | - 管程 126 | - 协程 127 | - 进程间的通信方式 128 | - 进程间同步问题 129 | - 生产者消费者问题 130 | - 哲学家就餐问题 131 | - 读者-写者问题 132 | - 锁死的四个必要条件 133 | - 死锁处理 134 | 135 | #### (3)内存管理 136 | 137 | - 段式管理 138 | - 页式管理 139 | - 段页式管理 140 | - 页面调度算法 141 | 142 | #### (4)其他 143 | 144 | - 虚拟内存和逻辑内存 145 | 146 | - 静态链接和动态链接 147 | - 缓存 148 | - 僵尸进程与孤儿进程 149 | 150 | ## 二、java基础 151 | 152 | ### 1、面向对象基础 153 | 154 | - 继承 155 | - 封装 156 | - 多态 157 | - 接口 158 | - 抽象类 159 | 160 | ### 2、java集合 161 | 162 | - 总体框架 163 | - Collection 164 | - ArrayList 165 | - LinkedList 166 | - Vector 167 | - Stack 168 | - 快速失败和快速安全 169 | - HashMap 170 | - TreeMap 171 | - LinkedHashMap 172 | - HashSet 173 | - TreeSet 174 | - Hashtable 175 | - WeakHashMap 176 | 177 | ### 3、关键字和类 178 | 179 | - transient 180 | - instanceof 181 | - static 182 | - this 183 | - super 184 | - void 185 | - final 186 | - String 187 | - String为什么不可变 188 | - String、StringBuilder、StringBuffer区别 189 | - String到底新建了几个对象 190 | 191 | ### 4、java高级特点 192 | 193 | - 注解 194 | - 反射 195 | - 泛型 196 | - 异常 197 | - 枚举 198 | - IO机制 199 | - 编码转换 200 | - java8新特性 201 | - java11新特性 202 | 203 | ### 5、并发库 204 | 205 | #### (1)并发基础 206 | 207 | - Thread生命周期 208 | - 线程安全问题 209 | - 线程通信模式 210 | - sleep和wait的区别 211 | - ThreadLocal 212 | 213 | #### (2)原子特性 214 | 215 | - AtomicInteger 216 | - AtomicBoolean 217 | - AtomicStampedReference 218 | - Unsafe 219 | - CAS 220 | 221 | #### (3)并发工具 222 | 223 | - CountDownLatch 224 | - CylicBarrier 225 | - Semaphore 226 | - Exchanger 227 | - Phaser 228 | - ForkJoin 229 | 230 | #### (4)锁机制 231 | 232 | - synchronized 233 | - volatile 234 | - Reentrantlock 235 | - ReenReadWriteLock 236 | - StampedLock 237 | - 公平锁和非公平锁 238 | - 悲观锁和乐观锁 239 | - ABA问题 240 | - 互斥锁和共享锁 241 | - 可重入锁和不可重入锁 242 | - AQS机制 243 | - RingBuffer 244 | - 锁升级 245 | - 锁消除 246 | - 锁粗化 247 | 248 | #### (5)并发容器 249 | 250 | - ConcurrentHashMap 251 | - ConcurrentSkipListMap 252 | - ConcurrentSkipSet 253 | - ConcurrentLinkedQueue 254 | - CopyOnWriteArrayList 255 | - 阻塞队列 256 | - 优先级队列 257 | 258 | #### (6)线程池 259 | 260 | - 线程池的几种状态切换 261 | - 线程池的参数 262 | - 线程池的启动流程 263 | - 线程池的分类 264 | - 线程池的大小设置 265 | 266 | ### 6、JVM 267 | 268 | - java内存结构(jdk1.7和1.8) 269 | - 垃圾回收机制 270 | - 类加载机制 271 | - 内存分类和回收 272 | - 四种引用(强、软、弱、虚) 273 | - 内存溢出 274 | - JVM调优工具 275 | - 垃圾回收器 276 | - ZGC的认识 277 | - JNI 278 | - 内存逃逸 279 | 280 | ## 三、必备基础 281 | 282 | ### 1、设计模式 283 | 284 | - 创建型模式 285 | - 结构性模式 286 | - 行为性模式 287 | - 设计模式的六种原则 288 | - MVC模型 289 | - MVVC模型 290 | - UML 291 | - 康威定理 292 | 293 | ### 2、Linux 294 | 295 | - Linux目录结构 296 | - 常见命令 297 | - 文件系统管理 298 | - 用户系统管理 299 | - 进程管理 300 | - 网络管理 301 | - 备份与恢复 302 | - 文本文件处理命令 303 | - shell编程 304 | 305 | ### 3、代码工具 306 | 307 | - Git 308 | - Maven 309 | - gradle 310 | - 日志框架 311 | - Junit 312 | 313 | ## 四、数据库 314 | 315 | ### 1、mysql 316 | 317 | #### (1)基本知识 318 | 319 | - 三大范式 320 | - 数据库、数据表、字段的增删改查基本操作 321 | - 分区表 322 | - 视图 323 | - 外键约束 324 | - 游标 325 | - 变量 326 | - 存储过程 327 | - 函数 328 | - 字符集 329 | 330 | #### (2)存储引擎 331 | 332 | - InnoDB 333 | - MyISAM 334 | - 转换表的引擎 335 | 336 | #### (3)事务 337 | 338 | - 隔离级别 339 | - 多版本并发工具 340 | - 分布式事务 341 | - ACID特性 342 | 343 | #### (4)索引 344 | 345 | - 聚集索引 346 | - 非聚集索引 347 | - 复合索引 348 | - 底层实现原理 349 | 350 | #### (5)锁 351 | 352 | #### (6)测试 353 | 354 | #### (7)优化方案 355 | 356 | - 数据类型优化 357 | - 索引优化 358 | - 查询性能优化 359 | - mysql配置优化 360 | - 硬件优化 361 | 362 | #### (8)高可用方案 363 | 364 | #### (9)复制迁移 365 | 366 | ### 2、Redis 367 | 368 | - 持久化机制 369 | - 缓存三种问题(穿透、击穿、雪崩) 370 | - 内存淘汰策略 371 | - 哨兵机制 372 | - 集群方案 373 | - 复制原理 374 | 375 | ### 3、MongoDB 376 | 377 | ### 4、Hbase 378 | 379 | ## 五、常用基本框架 380 | 381 | ### 1、servlet 382 | 383 | ### 2、Spring系列家族 384 | 385 | ### 3、Mybatis 386 | 387 | ### 4、JPA 388 | 389 | ### 5、Netty 390 | 391 | ### 6、websocket 392 | 393 | ## 六、运维统计相关 394 | 395 | ### 1、平台监控 396 | 397 | - zabbix、Nagios、Ganglia等 398 | - Linux命令监控:top、sar、tsar、nload等 399 | - JVM监控工具 400 | 401 | ### 2、APM 402 | 403 | ### 3、持续集成 404 | 405 | - 持续集成工具Jenkins 406 | - TeamCity 407 | - Travis CI 408 | - GitLab CI 409 | - 环境分离 410 | 411 | ### 4、容器相关 412 | 413 | - Docker 414 | - K8S 415 | 416 | ### 5、虚拟化 417 | 418 | - KVM 419 | - Xen 420 | - OpenVZ 421 | 422 | ### 6、自动化运维 423 | 424 | - Ansible 425 | - puppet 426 | - chef 427 | 428 | ### 7、测试 429 | 430 | - 单元测试 431 | - 压力测试 432 | - 灰度测试 433 | - A/B测试 434 | - 蓝绿测试 435 | - TDD测试理论 436 | - 全链路测试 437 | 438 | ## 七、中间件 439 | 440 | ### 1、web 441 | 442 | - Nginx 443 | - OpenRestry 444 | - Tengine 445 | - ApacheHttpd 446 | 447 | ### 2、服务器 448 | 449 | - Tomcat 450 | - Jetty 451 | - WebLogic 452 | - JBoss 453 | 454 | ### 3、缓存 455 | 456 | - 本地缓存 457 | - 客户端缓存 458 | - web缓存 459 | - Memcached 460 | - Redis 461 | - Tair 462 | - cellar 463 | 464 | ### 4、消息队列 465 | 466 | - Kafka 467 | - ActiveMQ 468 | - RocketMQ 469 | - RabbitMQ 470 | - Redis消息队列 471 | - ZeroMQ 472 | 473 | ### 5、RPC 474 | 475 | - Dubbo 476 | - Thrift 477 | - gRPC 478 | - java的RMI 479 | 480 | ### 6、定时任务 481 | 482 | - Quartz 483 | - cron定时调度 484 | - java定时任务 485 | - Elastic-job 486 | - opencron 487 | - LTS 488 | 489 | ### 7、数据库中间件 490 | 491 | - Mycat 492 | - Sharding Jdbc 493 | 494 | ### 8、搜索引擎 495 | 496 | - Lucene 497 | - Elasticsearch 498 | - Solr 499 | - sphinx 500 | 501 | ## 八、微服务 502 | 503 | ## 1、微服务框架 504 | 505 | - Springcloud 506 | - SpringCloud Alibaba 507 | - Dropwizard 508 | - Akka 509 | 510 | ### 2、注册中心 511 | 512 | - Eureka 513 | - Zookeeper 514 | - Consul 515 | 516 | ### 3、服务调用 517 | 518 | - Feigh 519 | - restTemplete 520 | 521 | ### 4、负载均衡 522 | 523 | - Ribbon 524 | 525 | ### 5、网关 526 | 527 | - Gateway 528 | - kong 529 | - zuul 530 | 531 | ### 6、配置中心 532 | 533 | - Zookeeper 534 | - Apollo 535 | - Springcloud Config 536 | 537 | ### 7、链路跟踪 538 | 539 | - SpringCloud Bus 540 | - SpringCloud Sleuth 541 | - Zipkin 542 | - Dapper 543 | - log-based 544 | - HTrace 545 | 546 | ## 九、分布式 547 | 548 | ### 1、分布式理论 549 | 550 | - CAP理论 551 | - BASE理论 552 | - 幂等性 553 | - 分布式锁 554 | - redis实现 555 | - 数据库实现 556 | - Zookeeper实现 557 | 558 | ### 2、一致性算法 559 | 560 | - Paxos 561 | - ZAB 562 | - Raft 563 | - Gossip 564 | - 两阶段提交协议 565 | - 节点选举策略 566 | - 一致性hash算法 567 | 568 | ### 3、分布式文件系统 569 | 570 | - HDFS 571 | - fastDFS 572 | 573 | ### 4、分布式ID 574 | 575 | - Snowflake算法 576 | - Flicker算法 577 | - UUID 578 | - MongoDB实现 579 | 580 | ### 5、分布式事务 581 | 582 | - 多阶段提交 583 | - TCC补偿事务 584 | - 本地消息表 585 | - MQ事务消息 586 | - 最大努力通知 587 | 588 | ### 6、稳定性高可用方案 589 | 590 | - 软硬件负载均衡 591 | - 限流 592 | - 容灾 593 | - 平滑启动 594 | 595 | ## 十、安全 596 | 597 | ### 1、web安全 598 | 599 | - XSS 600 | - CRSF 601 | - SQL注入 602 | - DDOS 603 | - DNS攻击 604 | - 脚本注入 605 | - 序列化攻击 606 | - 中间人攻击 607 | 608 | ### 2、加密解密算法 609 | 610 | - 对称加密 611 | - 非对称加密 612 | - hash算法 613 | - 数字签名 614 | - Base64 615 | 616 | ### 3、框架 617 | 618 | - Shiro 619 | - SpringSecurity 620 | 621 | ### 4、授权认证 622 | 623 | - RBAC 624 | - OAuth2.0 625 | - OIDC 626 | - SAML 627 | - TLS全链路加密 628 | - JWT用户认证 629 | - Check前置检查 630 | - Quota配额管理 631 | - Telemetry遥测报告 632 | - 双因素认证(2FA) 633 | - 单点登录SSO 634 | 635 | ## 十一、项目管理 636 | 637 | ### 1、开发设计 638 | 639 | - DDD领域驱动模型 640 | - Actor模式 641 | - 响应式编程 642 | - DODAF2.0 643 | - Serverless 644 | - Service Mesh 645 | 646 | ### 2、项目管理 647 | 648 | - 代码规范 649 | - 敏捷开发 650 | - 极限编程 651 | - 结对编程 652 | - RUP 653 | - SCRUM 654 | - PDCA循环质量管理 655 | - FMEA管理模式 656 | 657 | ### 3、架构管理 658 | 659 | - DevOps 660 | - OpenGroup 661 | - ABSD架构方法论 662 | - 架构设计原则 663 | - 异地多活 664 | - Knative弹性伸缩 665 | 666 | ## 十二、大数据云计算 667 | 668 | ### 1、流式计算 669 | 670 | - storm 671 | - Flink 672 | - KafkaStream 673 | 674 | ### 2、Hadoop 675 | 676 | - HDFS 677 | - MapReduce 678 | - Yarn 679 | - Spark 680 | 681 | ## 十三、开发工具 682 | 683 | - IDEA 684 | - VSCode 685 | - VIM 686 | - Gitlab 687 | - Navicat 688 | - XShell 689 | - postman 690 | - Filezilla 691 | - Fiddler 692 | 693 | ## 十四、软实力 694 | 695 | - 项目管理 696 | - 团队管理 697 | - 个人素养提升 698 | - 职业素养提升 699 | - 英语 700 | 701 | ## 十五、学习资源 702 | 703 | ### 1、视频网站 704 | 705 | - [B站](https://www.bilibili.com/) 706 | - [慕课网](https://www.imooc.com/) 707 | - [中国大学MOOC网](https://www.icourse163.org/category/all) 708 | 709 | ### 2、博客社区 710 | 711 | - [CSDN](https://www.csdn.net/) 712 | - [开源中国](https://www.oschina.net/) 713 | - [简书](https://www.jianshu.com/) 714 | - [思否](https://segmentfault.com/) 715 | - [掘金](https://juejin.cn/) 716 | - [博客园](https://www.cnblogs.com/) 717 | - [阿里云社区](https://developer.aliyun.com/) 718 | - [开发者头条](https://toutiao.io/) 719 | - Medium 720 | 721 | ### 3、技术手册 722 | 723 | - [W3Cschool](https://www.w3cschool.cn/) 724 | - [Runoob.com](https://www.runoob.com/) 725 | - [慕课网教程手册](http://www.imooc.com/wiki/) 726 | 727 | ### 4、行业资讯 728 | 729 | - [知乎](https://www.zhihu.com/) 730 | - [stackoverflow](https://stackoverflow.com/) 731 | 732 | ### 5、代码托管 733 | 734 | - [github](https://github.com/) 735 | - [gitee](https://gitee.com/) 736 | - [coding](https://coding.net/) 737 | 738 | ### 6、电子书网站 739 | 740 | - [gitbook](https://www.gitbook.com/) 741 | - [aibooks](https://www.aibooks.club/) 742 | - [书栈网](https://www.bookstack.cn/) 743 | - [搬书匠](http://www.banshujiang.cn/) 744 | - [鸠摩搜索](https://www.jiumodiary.com/) 745 | - [IT-ebooks国外免费](https://it-ebooks.info/) 746 | 747 | ### 7、程序员交流网站 748 | 749 | - [V2EX](https://www.v2ex.com/) 750 | 751 | ### 8、云服务器 752 | 753 | - [阿里云](https://www.aliyun.com/) 754 | - [腾讯云](https://cloud.tencent.com/) 755 | - [百度云](https://cloud.baidu.com/) 756 | - [华为云](https://www.huaweicloud.com/) 757 | - [七牛云](https://www.qiniu.com/) 758 | - [西部数据](https://www.west.cn/) 759 | - [金山云](https://www.ksyun.com/) 760 | 761 | ### 9、面试刷题 762 | 763 | - [LinkCode](http://www.linkedcode.com/) 764 | - [LeetCode](https://leetcode-cn.com/) 765 | - [牛客网](https://www.nowcoder.com/) 766 | 767 | ### 10、找工作 768 | 769 | - [100offer](http://www.cfenews.com/100offerwang/) 770 | - [拉勾网](https://www.lagou.com/) 771 | 772 | ### 11、数据资源下载 773 | 774 | - [国家数据](https://data.stats.gov.cn/easyquery.htm?cn=A01) 775 | - [MSDN](https://msdn.itellyou.cn/) 776 | - [PUDN](http://www.pudn.com/) 777 | - [OPSX阿里巴巴开源镜像](http://www.pudn.com/) 778 | - T[UNA清华开源软件](https://mirrors.tuna.tsinghua.edu.cn/) 779 | - [163网易开源镜像](http://mirrors.163.com/) 780 | 781 | ### 12、编程外包 782 | 783 | - [大神部落](http://www.buluo007.com/) 784 | - [程序员客栈](https://www.proginn.com/) 785 | - [码市](https://codemart.com/) 786 | - [开源众包](https://zb.oschina.net/) 787 | 788 | ### 13、个人博客搭建平台 789 | 790 | - [hexo](https://hexo.fluid-dev.com/docs/start/) 791 | - [WordPress](https://cn.wordpress.org/) 792 | - [jekyll](http://jekyllcn.com/) 793 | - [hugo](https://www.gohugo.org/) 794 | 795 | ## 十六、综合类网站 796 | 797 | ### 法律法规&身体健康 798 | 799 | - [法律法规](http://www.gov.cn/flfg/) 800 | - [身体健康](http://www.9ask.cn/souask/q/q3113193.htm) 801 | - [中华人民共和国职业病防治法](https://duxiaofa.baidu.com/detail?searchType=statute&from=aladdin_28231&originquery=%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD%E8%81%8C%E4%B8%9A%E7%97%85%E9%98%B2%E6%B2%BB%E6%B3%95&count=88&cid=a1852015fa9454ed1e1276accc200a28_law) 802 | - [防猝死的方法](https://www.baidu.com/bh/dict/ydxx_8249035871130485651?tab=%E6%97%A5%E5%B8%B8&title=%E7%8C%9D%E6%AD%BB&contentid=ydxx_8249035871130485651&sf_ref=dict_home&from=dicta) 803 | - 劳动法相关 804 | - [劳动法](http://www.npc.gov.cn/wxzl/gongbao/2000-12/05/content_5004622.htm) 805 | - [合同法](http://www.npc.gov.cn/wxzl/wxzl/2000-12/06/content_4732.htm) 806 | - [劳动合同法](http://www.gov.cn/zwgk/2008-09/19/content_1099470.htm) 807 | 808 | ### 综合小工具 809 | 810 | - [在线文件转换](https://link.zhihu.com/?target=http%3A//www.alltoall.net/) 811 | 812 | 200+种文件格式,视频、音频、图片、文档、表格、电子书等等,再也不用为文件格式转换下载各种工具和软件了。 813 | 814 | - [Mathpix Snip](https://link.zhihu.com/?target=https%3A//mathpix.com/) 815 | 816 | MAthpix Snip能够准确快速的识别图片中的数学公式,并且转成LaTeX格式,真正能够提升效率的一款工具。 817 | 818 | - [DesktopCal](https://link.zhihu.com/?target=http%3A//chs.desktopcal.com/chs/) 819 | 820 | DesktopCal是一款功能强大的桌面日历,包含待办事项、农历、24节气、日程安排等功能,而且能够直接平铺在桌面 821 | 822 | - [VIP视频破解](http://www.qmye.cn/) 823 | 824 | 破解优酷、腾讯视频、爱奇艺等各种常见VIP视频,只需要把链接地址放入即可无广告播放。 825 | 826 | - [樱花动漫](http://www.imomoe.ai/) 827 | 828 | 国内被封的不被封的动漫都可以无广告播放。 829 | 830 | > 本文持续更新中 831 | > 832 | > 本文收录于https://github.com/fengdongdongwsn/architect-java 833 | 834 | ![](https://s3.ax1x.com/2020/12/18/rJnbO1.jpg) 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | --------------------------------------------------------------------------------