学习路线汇总
阶段一:数据结构 |
一、基础 1、基本的数据结构 (1)基础概念 (2)数组 (3)链表 (4)栈: (5)队列 2、树 (1)哈夫曼树 (2)平衡二叉树 (3)红黑树 (4)B树、B+树 (5)LSM树 3、图 (1)最小生成树 (2)最短路径算法 (3)拓扑排序 4、排序 (1)选择排序 (2)冒泡排序 (3)插入排序 (4)快速排序 (5)归并排序 (6)希尔排序 (7)基数排序 (8)java中的排序工具 (9)排序算法的特点总结和性能比较 二、中级 1、KMP算法 2、布隆过滤器 3、并查集 4、符号表 5、汉诺塔 |
常见的面试题总结: 1、手写排序算法,比较他们之间的性能 2、解决hash冲突的方法 3、字符串和二叉树的手写实现 最主要的就是手写代码。对于每一种数据结构和算法,都要能够手写实现 |
阶段二:java基础 |
1、常见的集合类 [](1)基础类型和封装类 [](2)String [](3)System 2、关键字 [](1)transient [](2)instanceof [](3)final [](4)static [](5)this [](6)super [](7)void 3、高级 [](1)泛型 [](2)枚举 [](3)异常 [](4)注解 [](5)泛型 [](6)反射 [](7)进制 [](8)编码转化 4、集合类 [](1)总体框架 [](2)Collection [](3)ArrayList [](4)fail-fast原理 [](5)LinkedList [](6)Vector [](7)Stack [](8)HashMap [](9)TreeMap [](10)LinkedHashMap [](11)HashSet [](12)TreeSet 5、其他 [](1)String为什么不可变 [](2)java8新特性 [](3)java9、10、11、12新特性 [](4)== 和 equal的区别 [](5)HashCode方法的作用 [](6)创建对象的几种方式 |
每一个知识点不仅仅是机试中的重点,也是面试中的重点 对于java基础知识,复习的方法就是在你学完了上面的知识点之后,在牛客网等网站一天几十道题进行训练。然后进行错题总结 |
阶段三:设计模式 |
1、创建型模式 [](1)工厂方法模式 [](2)抽象工厂模式 [](3)单例模式 [](4)建造者模式 [](3)原型模式 2、结构型模式 [](1)适配器模式 [](2)装饰模式 [](3)代理模式 [](4)外观模式 [](5)桥接模式 [](6)组合模式 [](7)享元模式 3、行为型模式 [](1)策略模式 [](2)模板模式 [](3)观察者模式 [](4)迭代子模式 [](5)责任链模式 [](5)命令模式 [](5)备忘录模式 [](5)状态模式 [](1)访问者模式 [](2)中介者模式 [](3)解释器模式 |
|
阶段四:java虚拟机 |
[]1、java内存结构 []2、垃圾回收 []3、类加载机制 []4、内存分配和回收策略 []5、java中的四种引用 []6、jvm调优(时机、原则、目标、步骤、参数) []7、内存溢出(原因、例子、解决方式) |
全是重点 |
阶段五:操作系统 |
[]1、操作系统的基本特征 []2、进程与线程的本质区别、以及各自的使用场景。 []3、进程的几种状态。 []4、常见的进程同步方式和线程同步 []5、进程通信方法的特点以及使用场景。(分为windows和linux,以及共有的) []6、进程任务调度算法的特点以及使用场景。 []7、死锁的原因、必要条件、死锁处理。手写死锁代码。java是如何解决死锁的。 []8、线程实现的方式。 []9、协程的作用。 []10、内存管理的方式:段式、页式、段页式。比较他们的区别 []11、虚拟内存的作用,分页系统实现虚拟内存原理。 []12、页面置换算法的原理,特别是 LRU 的实现原理,最好能手写,再说明它在 Redis 等作为缓存置换算法。 []13、分析静态链接的不足,以及动态链接的特点。 |
可以看书进行总结,不过这里已经整理好了。 |
阶段六:Linux |
一、基础 []1、Linux目录结构 []2、Linux常见命令 []3、Linux文件系统管理 []4、Linux用户系统管理 []5、Linux进程管理 []6、Linux高效的文本文件处理命令 二、中级 []1、Linux网络管理 []2、Linux加密解密原理以及数据安全 []3、Linux系统备份和恢复 []4、shell编程 |
常见的面试题总结: []1、常见命令的考察,推荐指数:。 []2、 僵尸进程与孤儿进程的区别,从 SIGCHLD 分析产生僵尸进程的原因 []3、 硬链接与软链接的区别。 []4、 僵尸进程与孤儿进程的区别,从 SIGCHLD 分析产生僵尸进程的原因 |
常见问题链接地址: 1、46个Linux面试常见问题送给你 2、39条常见的Linux系统简单面试题 |
阶段七:网络 |
1、基础知识 [](1)五层协议(各自的作用) [](3)物理层(集线器、交换机、路由器作用、以太网特点以及帧结构) [](4)数据链路层 [](5)传输层 [](6)传输层 [](7)应用层 [](8)HTTP 2、socket [](1)阻塞式IO [](2)非阻塞式IO [](3)复用IO [](4)信号驱动IO [](5)异步IO [](6)五大IO模型比较 3、序列化 [](1)java序列化 [](2)protoBuf [](3)ProtoStuff [](4)avro 4、Netty [](1)基本案例 [](2)粘包问题解决 [](3)编码问题解决 [](4)实时通信问题解决 [](5)源码分析 5、远程调用 [](1)rmi [](1)thrift |
|
阶段八:并发基础 |
1、基础知识 [](1)线程的概念以及案例 [](2)Thread生命周期状态 [](3)Thread构造函数 [](4)java内存模型 [](5)线程通信 [](6)sleep和wait的区别 [](7)synchronized [](8)volatile [](9)ThreadLocal 2、原子包 [](1)AtomicInteger [](2)CAS原理 [](3)AtomicBoolean [](4)AtomicStampedReferece [](5)Unsafe 3、并发工具 [](1)CountDownLatch [](2)CyclicBarrier [](3)Semaphore [](4)Exchanger 4、锁机制 [](1)ReentrantLock [](2)ReenReadWriteLock [](3)StampedLock [](4)ForkJoin [](5)Phaser [](6)AQS原理 5、线程池 [](1)Excutor [](1)Future&Callable [](5)CompletionService [](5)ExcutorService [](5)ThreadFactory [](5)CompleteableFuture 6、并发容器 [](1)ConcurrentHashMap [](2)ConcurrentSkipListMap [](3)ConcurrentSkipSet [](4)ConcurrentLinkedQueue [](5)CopyOnWriteArrayList [](6)BlockingQueue |
1、一共35个知识点,但是实际可能会更多,基本上都是重点,面试常考点 |
阶段九:微服务架构 |
1、servlet [](1)servlet的生命周期 [](2)API(get和post区别、forward和redirect区别) [](3)JSP和servlet的比较 [](4)四种会话跟踪技术 [](5)request对象的主要方法 [](6)cookie和session的比较 2、Srping [](1)Spring架构(七大模块概述) [](1)Spring上下文和容器 [](5)Spring加载机制 [](5)SpringBean探秘 [](5)AOP与代理 3、SpringMVC [](1)SpringMVC架构与流程 [](1)DispatcherServlet的实现 [](5)每一控制器的流程解读 4、Springboot [](1)SpringBoot入门 [](1)整合其他技术 [](5)打包部署 [](5)actuator监控 [](5)源码分析 5、SpringCloud [](1)服务注册与发现Eureka [](2)客户端负载均衡Ribbon [](3)声明式Rest调用Feign [](4)容错机制Hystrix [](5)服务网关Zuul [](6)配置中心Apollo [] (7)负载均衡算法 |
Spring常见面试题 SpringMVC常见面试题 |
阶段十:分布式架构 |
1、基础 [](1)CAP理论 [](2)BASE理论 2、框架 [](1)Dubbo服务治理 [](1)Zookeeper协调 [](5)Nginx |
Spring常见面试题 SpringMVC常见面试题 |
阶段十一:数据库 |
1、Mysql [](1)UML图 [](2)Mysql基本操作 [](3)视图、函数、存储过程、变量、事务、流程控制、游标、权限管理 [](4)索引 [](5)查询性能优化 [](6)存储引擎的比较 [](7)切分:水平和竖直,sharding策略和问题 [](8)复制:主从复制和读写分离 2、Redis 3、MongoDB 4、ElasticSearch 5、中间件:AQ、RQ、Kafka 6、JDBC 7、Mybatis 8、fastDFS 9、Mycat |
|
阶段十二:工具 |
1、git 2、日志 3、测试Junit 4、Docker 5、Tomcat 6、正则表达式 7、Maven 8、k8s |
阶段十三:安全 |
1、Shiro 2、对称加密 3、数字签名 4、Base64 5、Tomcat 6、正则表达式 7、Maven 8、k8s |
阶段十三:面试算法题 |
将不断的完善 |
更多相关文章
- 5分钟学会mysql的逻辑架构原理
- 《JAVA与模式》之观察者模式
- synchronized 锁的升级原理是什么?
- 从模版方法模式到 SPI 演变 :好的思想通用而持久
- 漫谈设计模式在 Spring 框架中的良好实践
- java并发编程CAS机制原理分析
- 数字签名的原理是什么?这篇文章给你答案(java代码实现)
- 设计模式之适配器模式