最近整理了java技术栈的一些知识点,后续会根据知识要点逐步分专题完善
Java技术栈主要内容包含如下:
一、javacore
主要是java核心技术为主,归纳总结jdk原生核心实现,包括其中使用的设计模式总结
1、集合:内容包括集合的框架和使用,集合的关键原理和设计
2、设计模式:分享总结23种设计模式,并再jdk中找到对应的实践案例
3、并发编程:详细分析讲解java并发原理,使用方法,多线程和锁机制等
4、IO:系统梳理java中的IO模型,实现原理,使用场景等,以及如何提高IO性能
二、JVM
1、内存模型:梳理JVM的内存模型,是学习JVM的基础
2、内存溢出:常见的内存溢出的场景以及如何设计才能避免内存溢出
3、垃圾回收:熟悉现代JVM的垃圾回收机制,以及如何使用垃圾回收配置和策略
4、性能调优:根据JVM的内存模型、垃圾回收等原理实现JVM的性能调优,总结经验
5、类加载:java类是如何加载的,加载的模型、原理和启发
三、javaweb
1、SpringMVC:MVC设计模式的思考和应用
2、SpringIOC:IOC的原理,spring核心代码
3、SpringAOP:AOP的原理,springAOP的核心代码
4、SpringBoot:springboot的核心原理和代码
5、web服务器:有哪些web服务器,以及服务器的实现原理,必然tomcat、netty、jetty等
四、中间件
1、Apache:apache的原理以及使用,如何排查定位问题
2、反向代理:Nignix的原理以及使用,如何排查定位问题
3、消息中间件:有哪些消息中间件,消息中间件的作用,性能如何评估等
3.1、kafka:kafka原理,设计架构,如何使用,性能评估
3.2、ActiveMQ:activeMQ原理,设计架构,如何使用,性能评估
五、分布式
1、zookeeper:zk的设计原理,使用场景,实际操作,代码展示
2、redis:redis的设计原理,使用场景,实际操作,代码展示
3、API网关:如何设计API网关,API网关作用
4、分布式事务:现在有的分布式事务设计模式整理
5、分布式锁:如何实现分布式锁,以及分布式锁的原理
6、分布式数据库:分布式数据库整理,如何使用
六、数据库
1、mysql:mysql数据库的特性,设计原理,使用方法
2、oracle:oracle数据库的特性,设计原理,使用方法,性能调优
3、mybatis:mybatis设计原理,使用方法,特性,优化等
4、Hadoop:Hadoop的设计原理,方法,使用等
5、NoSQL数据库:哪些NoSQL数据库,性能如何,如何选型,典型的使用场景
七、架构:架构的演进,适用场景
1、单一架构:单一架构的优缺点
2、SOA:SOA架构的优缺点和应用场景
3、微服务架构:微服务架构的优缺点,设计思路,包含内容
八、容器技术
1、go:go语言,基本语法,特性点,不同点
2、docker:docker的基本原理,使用方法命令
3、云原生:云原生的基本原理,如何建立云原生系统
4、k8s:k8s的基本原理,命令,如何运维
九、大数据:大数据的存储和计算,流失技术,离线处理
1、Flink
2、Storm
3、spark