重要知识点的整理路线
本文梳理java必备的知识路线,分为二个模块来说。
- 第一 是必须要掌握的被当前市场所认可的基础知识点
- 第二 是作为高阶段程序开发所要了解的一些知识点。
本次梳理的知识点是针对于有一定开发经验的码农。
基础知识点
针对于市场上面试频繁的知识点来罗列。
##### java基础知识
- 各种数据结构基本设计概念【例如:hashMap list 在jdk1.7和1.8差别是什么】
- 一些内置对象函数灵活使用【例如 java8 函数流】
- 熟悉各种基础的排序方式【例如 冒泡 快排 选择 插入等】
- 熟悉java的各种内存模型【例如 堆内存和栈内存 等】
- 一定要了解各种多线程有关的知识点【各种锁的类型和区别】
- 怎么懂得排查线上各类问题【例如oom问题怎么找】
- 还有一些编程风格和习惯【例如在修改代码bug应该要注意什么】
- 各种编程的设计模式【单列模式 策略模式等】
##### spring框架
web快速开发离不开spring框架,目前最流行的就是springboot框架。
- 对的spring 框架的了解 。ioc和aop这些必须要懂
- spring的事务机制要懂,脏读,幻读,可重复读概念要了解,也要知道是怎么解决的。
- springboot框架的优势要知道
- spring的各种注解@使用
- 熟悉springboot框架的启动流程,还有是怎么对bean对象进行单列的管理。
关系型数据库
必须了解一种关系型数据库
mysql,oralce, sqlserver.
mysql
- 各种数据库引擎的区别【innodb和mylasm】
- 数据库的索引使用的细节
- 数据库语句编写的注意点【避免全表查询】
- 数据库的性能优化的流程步骤【从那几个模块说】
- 数据库读写分离的设计思路
- 数据库慢查询和数据备份
- 了解一种数据库持久化框架【mybatis 为主】
非关系型数据库
redis,mongodb, hbase
redis
- 基本数据类型,以及数据结构
- redis的原子性运用场景
- redis的持久化策略
- redis的哨兵模式
- 如果解决缓存雪崩,缓存穿透,缓存击穿等问题
消息队列
消息队列【messageQuene】,用于解耦程序之间依懒性
常见的消息队列有kafka,rabbitmq,rokcetmq
- 了解一种mq,知道mq的特性和使用场景
- 了解mq的实现原理
- 如何解决mq重复消费,怎么保证消息有顺序
linux
- 基础部署项目操作 安装必要的生产环境
- 怎么去查找线上项目的问题【例如oom】
进阶知识点
netty
说道网络通信框架,必须要了解bio,nio,aio这几个概念、
了解netty从下面几个点入手
- 建立通信的基本流程
- TCP、UDP的区别?
- jdk NIO 和netty的有什么区别,在netty框架上做了哪些优化
- netty的网络模型有几种,最经典的是哪种
- 粘包和拆包产生的原因 以及 解决方式
- Netty组件有哪些,分别有什么关联
- netty的高性能体现在哪里
- 怎么理解零拷贝机制的
- select、poll、epoll的机制及其区别
分布式的知识点
分布式架构要了解 spingcloud,doubbo
注册中心:eurek, zookeper,nacos
springcloud+eurek, doubbo+zookeper
1.了解分布式架构 ,及其运用场景
2.知晓为什么游戏服务器不能用 分布式架构
elasticSearch
了解es搜索引擎作用,及运用场景
nginx
- 会使用nginx做网络代理
- 使用nginx做负载均衡
1