java小白到架构师技术图谱(整理全网,持续更新)

码农天地 -
java小白到架构师技术图谱(整理全网,持续更新)

本文整理于github上各大star大神仓库。并根据自己的理解重新进行了整理

本文已经收录于https://github.com/fengdongdo...

后序会继续更新

一、计算机基础1、数据结构(1)基本数据结构数据结构基本概念(时间复杂度和空间复杂度的计算方法)数组链表集合队列栈关联数组跳表倒排索引BitSet(2)树二叉树平衡二叉树完全二叉树哈弗曼树二叉查找树B、B+、B*树LSM树字典树红黑树线段树(3)图最小生成树最短路径算法拓扑排序深搜和广搜(4)排序算法选择排序冒泡排序插入排序快速排序归并排序希尔排序基数排序计数排序桶排序堆排序排序算法使用场景特点总结(5)查找算法顺序查找二分查找插值查找斐波那契查找树表查找(6)常见算法KMP算法贪心算法回溯算法剪枝算法动态规划并查集朴素贝叶斯递归算法符号表布隆过滤器2、计算机网络(1)协议OSI七层协议TCP/IP协议HTTP协议(2)网络模型阻塞式IO非阻塞式IO复用IO信号驱动IO异步IOEpoll模型javaNIOjavaAIOkqueue(3)序列化java序列化protoBufprotoStuffavroHessian3、操作系统(1)基本知识操作系统的四个特征操作系统的功能(2)进程与线程进程的概念与分类线程的概念与分类进程与线程的区别进行的状态转换CPU调度算法管程协程进程间的通信方式

进程间同步问题

生产者消费者问题哲学家就餐问题读者-写者问题锁死的四个必要条件死锁处理(3)内存管理段式管理页式管理段页式管理页面调度算法(4)其他虚拟内存和逻辑内存静态链接和动态链接缓存僵尸进程与孤儿进程二、java基础1、面向对象基础继承封装多态接口抽象类2、java集合总体框架CollectionArrayListLinkedListVectorStack快速失败和快速安全HashMapTreeMapLinkedHashMapHashSetTreeSetHashtableWeakHashMap3、关键字和类transientinstanceofstaticthissupervoidfinal

String

String为什么不可变String、StringBuilder、StringBuffer区别String到底新建了几个对象4、java高级特点注解反射泛型异常枚举IO机制编码转换java8新特性java11新特性5、并发库(1)并发基础Thread生命周期线程安全问题线程通信模式sleep和wait的区别ThreadLocal(2)原子特性AtomicIntegerAtomicBooleanAtomicStampedReferenceUnsafeCAS(3)并发工具CountDownLatchCylicBarrierSemaphoreExchangerPhaserForkJoin(4)锁机制synchronizedvolatileReentrantlockReenReadWriteLockStampedLock公平锁和非公平锁悲观锁和乐观锁ABA问题互斥锁和共享锁可重入锁和不可重入锁AQS机制RingBuffer锁升级锁消除锁粗化(5)并发容器ConcurrentHashMapConcurrentSkipListMapConcurrentSkipSetConcurrentLinkedQueueCopyOnWriteArrayList阻塞队列优先级队列(6)线程池线程池的几种状态切换线程池的参数线程池的启动流程线程池的分类线程池的大小设置6、JVMjava内存结构(jdk1.7和1.8)垃圾回收机制类加载机制内存分类和回收四种引用(强、软、弱、虚)内存溢出JVM调优工具垃圾回收器ZGC的认识JNI内存逃逸三、必备基础1、设计模式创建型模式结构性模式行为性模式设计模式的六种原则MVC模型MVVC模型UML康威定理2、LinuxLinux目录结构常见命令文件系统管理用户系统管理进程管理网络管理备份与恢复文本文件处理命令shell编程3、代码工具GitMavengradle日志框架Junit四、数据库1、mysql(1)基本知识三大范式数据库、数据表、字段的增删改查基本操作分区表视图外键约束游标变量存储过程函数字符集(2)存储引擎InnoDBMyISAM转换表的引擎(3)事务隔离级别多版本并发工具分布式事务ACID特性(4)索引聚集索引非聚集索引复合索引底层实现原理(5)锁(6)测试(7)优化方案数据类型优化索引优化查询性能优化mysql配置优化硬件优化(8)高可用方案(9)复制迁移2、Redis持久化机制缓存三种问题(穿透、击穿、雪崩)内存淘汰策略哨兵机制集群方案复制原理3、MongoDB4、Hbase五、常用基本框架1、servlet2、Spring系列家族3、Mybatis4、JPA5、Netty6、websocket六、运维统计相关1、平台监控zabbix、Nagios、Ganglia等Linux命令监控:top、sar、tsar、nload等JVM监控工具2、APM3、持续集成持续集成工具JenkinsTeamCityTravis CIGitLab CI环境分离4、容器相关DockerK8S5、虚拟化KVMXenOpenVZ6、自动化运维Ansiblepuppetchef7、测试单元测试压力测试灰度测试A/B测试蓝绿测试TDD测试理论全链路测试七、中间件1、webNginxOpenRestryTengineApacheHttpd2、服务器TomcatJettyWebLogicJBoss3、缓存本地缓存客户端缓存web缓存MemcachedRedisTaircellar4、消息队列KafkaActiveMQRocketMQRabbitMQRedis消息队列ZeroMQ5、RPCDubboThriftgRPCjava的RMI6、定时任务Quartzcron定时调度java定时任务Elastic-jobopencronLTS7、数据库中间件MycatSharding Jdbc8、搜索引擎LuceneElasticsearchSolrsphinx八、微服务1、微服务框架SpringcloudSpringCloud AlibabaDropwizardAkka2、注册中心EurekaZookeeperConsul3、服务调用FeighrestTemplete4、负载均衡Ribbon5、网关Gatewaykongzuul6、配置中心ZookeeperApolloSpringcloud Config7、链路跟踪SpringCloud BusSpringCloud SleuthZipkinDapperlog-basedHTrace九、分布式1、分布式理论CAP理论BASE理论幂等性

分布式锁

redis实现数据库实现Zookeeper实现2、一致性算法PaxosZABRaftGossip两阶段提交协议节点选举策略一致性hash算法3、分布式文件系统HDFSfastDFS4、分布式IDSnowflake算法Flicker算法UUIDMongoDB实现5、分布式事务多阶段提交TCC补偿事务本地消息表MQ事务消息最大努力通知6、稳定性高可用方案软硬件负载均衡限流容灾平滑启动十、安全1、web安全XSSCRSFSQL注入DDOSDNS攻击脚本注入序列化攻击中间人攻击2、加密解密算法对称加密非对称加密hash算法数字签名Base643、框架ShiroSpringSecurity4、授权认证RBACOAuth2.0OIDCSAMLTLS全链路加密JWT用户认证Check前置检查Quota配额管理Telemetry遥测报告双因素认证(2FA)单点登录SSO十一、项目管理1、开发设计DDD领域驱动模型Actor模式响应式编程DODAF2.0ServerlessService Mesh2、项目管理代码规范敏捷开发极限编程结对编程RUPSCRUMPDCA循环质量管理FMEA管理模式3、架构管理DevOpsOpenGroupABSD架构方法论架构设计原则异地多活Knative弹性伸缩十二、大数据云计算1、流式计算stormFlinkKafkaStream2、HadoopHDFSMapReduceYarnSpark十三、开发工具IDEAVSCodeVIMGitlabNavicatXShellpostmanFilezillaFiddler十四、学习资源1、视频网站B站慕课网中国大学MOOC网2、博客社区CSDN开源中国简书思否掘金博客园阿里云社区开发者头条Medium3、技术手册W3CschoolRunoob.com慕课网教程手册4、行业资讯知乎stackoverflow5、代码托管githubgiteecoding6、电子书网站gitbookaibooks书栈网搬书匠鸠摩搜索IT-ebooks国外免费7、程序员交流网站V2EX知乎8、云服务器阿里云腾讯云百度云华为云七牛云西部数据金山云9、面试刷题LinkCodeLeetCode牛客网10、找工作100offer拉勾网11、数据资源下载国家数据MSDNPUDNOPSX阿里巴巴开源镜像TUNA清华开源软件163网易开源镜像12、编程外包大神部落程序员客栈码市开源众包

本内容为第一版,后序将继续更新。

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

加个好友,技术交流

1628738909466805.jpg