美文网首页
最新整理的java学习路线

最新整理的java学习路线

作者: 一头码农 | 来源:发表于2020-01-02 19:41 被阅读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)解释器模式

    • ★★☆ 设计模式的作用。
    • ★★★ 手写单例模式,特别是双重检验锁以及静态内部类。
    • ★★★ 手写工厂模式。
    • ★★★ 理解 MVC,结合 SpringMVC 回答。
    • ★★★ 理解代理模式,结合 Spring 中的 AOP 回答。
    • ★★★ 分析 JDK 中常用的设计模式,例如装饰者模式、适配器模式、迭代器模式等。

    阶段四: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

    • ★★★ 各层协议的作用,以及 TCP/IP 协议的特点。
    • ★★☆ 以太网的特点,以及帧结构。
    • ★★☆ 集线器、交换机、路由器的作用,以及所属的网络层。
    • ★★☆ IP 数据数据报常见字段的作用。
    • ★☆☆ ARP 协议的作用,以及维护 ARP 缓存的过程。
    • ★★☆ ICMP 报文种类以及作用;和 IP 数据报的关系;Ping 和 Traceroute 的具体原理。
    • ★★★ UDP 与 TCP 比较,分析上层协议应该使用 UDP 还是 TCP。
    • ★★★ 理解三次握手以及四次挥手具体过程,三次握手的原因、四次挥手原因、TIME_WAIT 的作用。
    • ★★★ 可靠传输原理,并设计可靠 UDP 协议。
    • ★★☆ TCP 拥塞控制的作用,理解具体原理。
    • ★★☆ DNS 的端口号;TCP 还是 UDP;作为缓存、负载均衡。
    • ★★★ GET 与 POST 比较:作用、参数、安全性、幂等性、可缓存。
    • ★★☆ HTTP 状态码。
    • ★★★ Cookie 作用、安全性问题、和 Session 的比较。
    • ★★☆ 缓存 的Cache-Control 字段,特别是 Expires 和 max-age 的区别。ETag 验证原理。
    • ★★★ 长连接与短连接原理以及使用场景,流水线。
    • ★★★ HTTP 存在的安全性问题,以及 HTTPs 的加密、认证和完整性保护作用。
    • ★★☆ HTTP/1.x 的缺陷,以及 HTTP/2 的特点。
    • ★★★ HTTP/1.1 的特性。
    • ★★☆ HTTP 与 FTP 的比较。
    • ★★☆ 五种 IO 模型的特点以及比较。
    • ★★★ select、poll、epoll 的原理、比较、以及使用场景;epoll 的水平触发与边缘触发。

    阶段八:并发基础

    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

    • ★★★ B+ Tree 原理,与其它查找树的比较。
    • ★★★ MySQL 索引以及优化。
    • ★★★ 查询优化。
    • ★★★ InnoDB 与 MyISAM 比较。
    • ★★☆ 水平切分与垂直切分。
    • ★★☆ 主从复制原理、作用、实现。
    • ★☆☆ redo、undo、binlog 日志的作用。
    • ★★☆ 字典和跳跃表原理分析。
    • ★★★ 使用场景。
    • ★★★ 与 Memchached 的比较。
    • ★☆☆ 数据淘汰机制。
    • ★★☆ RDB 和 AOF 持久化机制。
    • ★★☆ 事件驱动模型。
    • ★☆☆ 主从复制原理。
    • ★★★ 集群与分布式。
    • ★★☆ 事务原理。
    • ★★★ 线程安全问题。

    阶段十二:工具

    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

    阶段十三:面试算法题

    将不断的完善

    相关文章

      网友评论

          本文标题:最新整理的java学习路线

          本文链接:https://www.haomeiwen.com/subject/eeoooctx.html