最新整理的java学习路线

简介: 最新整理的java学习路线

阶段一:数据结构


一、基础


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)负载均衡算法


阶段十:分布式架构


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

相关文章
|
8月前
|
前端开发 JavaScript Java
Java学习路线
Java学习路线
159 1
|
8月前
|
Java 开发者
Java 学习路线 2024 最新版!
又对上次分享的 Java 学习路线进行了简单修改完善,并增加了免登录下载和黑夜模式,这里重发一下。 花了一个月零碎的时间,我根据当下 Java 后端求职和招聘的最新要求,对之前写的 Java 后端学习路线进行了全面的优化和改进。
|
7月前
|
前端开发 Java 关系型数据库
Java后台学习路线
Java后台学习路线
64 5
|
6月前
|
Java
图解java工程师学习路线
图解java工程师学习路线
265 0
|
8月前
|
Dubbo Java 应用服务中间件
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
|
8月前
|
移动开发 搜索推荐 Java
Java如何支持函数式编程?,作为移动开发程序员应该怎样去规划自己的学习路线
Java如何支持函数式编程?,作为移动开发程序员应该怎样去规划自己的学习路线
|
8月前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
177 3
|
8月前
|
设计模式 Java 微服务
Java高薪学习路线:解锁Java开发的黄金钥匙
Java高薪学习路线:解锁Java开发的黄金钥匙
202 0
|
8月前
|
Java
java学习路线分享
java学习路线分享
|
8月前
|
算法 Java 数据库
Java开发学习路线
Java开发学习路线
80 0