基础知识:
1. Java 反射:Field、Type
2. Java代理:proxy、cglib
3. Java线程:Thread、Runnable、ExecutorService、Callable、Future、ThreadPoolExecutor
4. Java数据结构:HashMap ArrayList LinkedList HashSet BlockingQueue ConcurrentHashMap TreeMap
5. JVM :运行时数据区、堆设置、收集器设置、回收日志分析
6. Lambda表达式:stream、filter、collect、map、forEach、
7. 并发与锁:synchronized、ReentrantLock、ReadWriteLock、Atomic;
8. 通讯协议:HTTP、TCP/IP、NIO、BIO、WebSocket
9. 数据结构:表、栈、队列、二叉树、AVL树、BTree、黑红数、散列、图。
10. 常用 算法 : 冒泡排序 , 选择排序 ,插入排序、堆排序, 归并排序 、 快速排序 ; 二分查找 ;布隆过滤器;
11. 设计模式:工厂模式、 观察者模式 、 单例模式 、 代理模式 、命令模式、策略模式
12. Web容器: tomcat 、 jboss 、jetty
13. HTTP服务:httpd、 nginx 、openResty、kong
14. 工具包:common、poi、gson、guava
15. 构建工具:maven、gradle
16. 通讯框架: netty 、mina
17. 序列化 :hessian、protobuff、json
18. 服务发现: zookeeper 、etcd、eureka、consul、nacos
19. 数据库: Mysql 、mongoDB、 redis 、mycat、berkeleyDB
20. 连接池:dbcp、c3p0、druid、 jdbc 、http
21. 大数据: spark 、storm、 hadoop 、 hdfs
22. 容器: docker 、k8s
23. 监控:zabbix、prometheus
开源框架:
1. Spring:IOC、AOP、事务处理
2. SpringMVC:DispatcherServlet、HandlerMapping、HandlerAdapter、Controller、Intercepter、View
3. SpringBoot:集成web、hibernate、mybatis、redis、docker下使用
4. SpringCloud :Netfix、Config、Bus、Eureka、Consul、Stream、Task、Gateway
5. Hibernate:Configuration、SessionFactory、乐观锁、二级 缓存 、高并发、多数据源
6. Mybatis:Configuration、SqlSession、Executor 、TypeHandler、动态sql、二级缓存
7. Netty:nio、拆念包、future、pipeline
8. Guava:限流算法、布隆过滤器、JVM缓存
9. Hystrix:隔离、熔断、降级
10. 消息队列:rabbitMQ、rocketMQ、kafka
11. RPC框架:dubbo、motan、thrift、grpc
12. 搜索隐形:Lucene、Elasticsearch、Solr
数据库:
1. Mysql:主备、读写分、横向纵向拆分、调优、语法、 索引 、优化
2. Redis:主备、读写分离、持久化、命中和过期
3. MogoDB:集合、文档、文件、索引、 聚合函数 、分片
消息队列:
1. 概念:topic、message、queue、producer、consumer、broker
2. 消息类型:顺序消息、定时消息、延迟消息、事务消息
3. 消息回溯、消息堆积、消息拉取、消息签收
高并发:
1. 服务拆分:微服务化、分布式事务、数据库水平垂直拆分
2. 服务治理:zookeeper、rpc
3. 消息队列:异步处理、最终一致性
4. 缓存技术:JVM缓存、redis缓存、nginx缓存、CDN缓存、浏览器缓存。缓存击穿、缓存雪崩、缓存淘汰
高可用:
1. 负载均衡:算法、动静分离、切换、检测
2. 超时重试:超时时间、重试机制和策略
3. 限流:算法、容器、nginx、防止抖动
4. 隔离:线程隔离、进程隔离、机房隔离、读写隔离、动静隔离,采用hystrix、servlet3做隔离熔断
5. 降级:自动降级、人工降级,控制中心,采用hystrix手段
6. 监控:进程监控、线程监控、机器监控,报警
问题解决
1. 如何解决单点故障;(lvs、F5、A10、Zookeep、MQ)
2. 如何保证数据安全性;(热备、冷备、异地多活)
3. 如何解决检索难题;(数据库代理中间件:mysql-proxy、Cobar、MaxScale等;)
4. 如何解决统计分析问题;(离线、近实时)
最后,开发这么多年我也总结了一套学习Java的资料,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。