阶段一:数据结构

一、基础

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

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

  • ★★★ 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


阶段十三:面试算法题

将不断的完善


更多相关文章

  1. 5分钟学会mysql的逻辑架构原理
  2. 《JAVA与模式》之观察者模式
  3. synchronized 锁的升级原理是什么?
  4. 从模版方法模式到 SPI 演变 :好的思想通用而持久
  5. 漫谈设计模式在 Spring 框架中的良好实践
  6. java并发编程CAS机制原理分析
  7. 数字签名的原理是什么?这篇文章给你答案(java代码实现)
  8. 设计模式之适配器模式

随机推荐

  1. 一道php自增运算符题
  2. ThinkPHP的create方法的一系列操作
  3. PHP不区分大小写数组搜索函数[duplicate]
  4. PHP是否以不同方式(内部)处理数字索引数组?
  5. php中的PCRE 函数,正则表达式处理函数。
  6. 将SQL查询的SELECT子句解析为PHP数组
  7. php 模板框架之smarty 的下载和安装
  8. 编译php时遇到的错误
  9. Doctrine 2.0 entitymanager-> replace()等
  10. PHP和MySQL应用实战