最新整理的java学习路线

2020-01-02  本文已影响0人  一头码农

阶段一:数据结构

一、基础

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

阶段十一:数据库

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

阶段十三:面试算法题

将不断的完善

上一篇 下一篇

猜你喜欢

热点阅读