手记

java面试知识点梳理大全

    今天给大家整理了一份儿Java面试知识梳理,掌握了这些知识点基本就可以搞定绝大多数的面试了,这些知识点可以帮助自己梳理我们需要掌握的知识点,如果发现自己的不足,有针对性的查缺补漏。

一.基础

javaSE

·         多态

·         接口和抽象类

·         序列化

·         集合

·         代理(动态代理、静态代理)

·         反射

·         设计模式

·         IO

javaWeb

·         cookie和session

·         servet知识

·         tomcat知识

JVM

·         java类加载机制

·         双亲委派模型

·         常用的GC算法

·         常用垃圾收集器及其原理

·         JVM内存模型

·         常见JVM内存分析工具及分析方法

·         CUP到了100%怎么排查

·         JDK1.7和JDK1.8区别

·         JDK1.8新特性

·         常用JVM调优参数

·         判断对象是否存活算法

·         引用的四种级别

·         finalize()方法

·         碰到过什么样的JVM线上问题,怎么排查的(最喜欢问的)

网络编程

·         tcp和udp

·         tcp的三次握手和四次挥手

·         AIO、BIO和NIO

·         描述一个请求完整的执行过程(最常问)

·         http和https

互联网工具

·         git

·         maven

·         linux

二.并发专题

JMM内存模型

·         线程和程序,并行和并发

·         volatile

·         指令重排序,原子性,可见性

并发同步处理

·         synchronized内置锁实现原理

·         AQS原理

·         CAS算法乐观锁

·         atomic原子类

·         threadLocal类

·         各种锁(悲观锁、乐观锁、可重入锁、公平锁、非公平锁等)

·         ReentrantLock/ReentrantReadWriteLock/ReentrantWriteLock详解

·         Condition条件队列、同步队列

JUC并发包

·         CountDownlatch详解

·         Semaphore详解

·         CyclicBarrier详解

·         阻塞队列(ArrayBlockingQueue、CurrentLinkedQueue、DelayQueue、PriorityBlockingQueue)

·         ForkJoin框架

·         线程池详解

·         HashMap和ConcurrentHashMap详解

·         ArrayList、LinkedList、CopyOnWriteArrayList详解

·         Set、CopyOnWriteArraySet详解

三.分布式专题

Redis缓存

·         什么是redis?

·         为什么要用redis?使用redis的好处

·         怎么用redis

·         redis五种数据结构以及使用场景

·         使用redis会有哪些问题?以及怎么解决

·         redis集群的搭建和原理

·         redis五种数据结构底层实现是怎样的

RocketMq(RabbitMq、kafka)消息队列

·         RocketMq、RabbitMq和kafka三者有什么不同?优缺点以及使用场景

·         RocketMq是什么?

·         RocketMq使用场景?

·         RocketMq消息发送原理

·         RocketMq消息丢失怎么办?

·         RocketMq集群同步机制

·         RocketMq事务原理

Zookeeper

·         什么是zookeeper?

·         为什么要使用zookeeper?(优缺点)

·         zookeeper使用场景

·         zookeeper原理

Dubbo

·         dubbo是什么?

·         为什么要使用dubbo?

·         dubbo使用场景

·         dubbo的rpc调用和http调用的区别,有什么优点

·         dubbo原理

·         使用dubbo有没有碰到什么问题?怎么解决?(如:dubbo重试)

·         dubbo怎么做到高可用

·         dubbo注册中心的服务发现

·         dubbo源码分析

netty

·         为什么使用netty

·         内部实现原理

·         netty我还没用过,后面再总结

mysql分库分表

·         什么是分库分表

·         分库分表应用场景

·         有什么优缺点

·         分库分表规则(算法),为什么考虑设计这样的规则,有没有可替代的其他规则

·         如何做到从一个单库应用平滑过渡到分库分表的应用

·         如果做到分库分表的数据,按条件分页查询

四.框架源码专题

spring源码

·         spring IOC 容器设计原理

·         spring的bean的生命周期

·         spring Context的装载过程源码分析

·         FactoryBean和BeanFactory区别

·         AOP注解编程

·         AOP源码分析

·         spring事务控制与源码分析

·         spring拦截器

springMVC源码

·         MVC设计思想

·         springMVC原理(请求过程)

·         springMVC组成的体系结构(映射器、执行器、视图解析器、异常捕捉等)

·         springMVC中的常用注解

springboot

·         springboot原理(启动流程)

·         springboot优缺点,使用它有什么好处

·         springboot常用注解

mybatis源码

·         使用mybatis解决了什么问题?有什么好处

·         mybatis原理

·         初始化过程

·         一条sql语句执行过程

·         Configuration、Mapper、SqlSession、Excutor源码分析

·         mybatis的一级缓存和二级缓存

·         如果让你手写一套mybatis,你会怎么设计(面试被问过)

五.数据结构和算法

数据结构

·         数组

·         链表

·         跳跃表

·         堆栈

·         队列

·         各种树

·         矩阵

算法

·         常用排序算法以及时间、空间复杂度

·         《剑指offer》

·         《LeetCode》

·         常见top K问题

六.数据库专题

mysql

·         数据库设计三范式

·         事务(特性和隔离级别)

·         MVCC多版本并发控制

·         事务并发问题

·         事务日志(binlog、redo log、undo log)

·         索引数据结构类型

·         索引分类(聚簇索引和非聚簇索引)

·         mysam和InnoDb区别

·         架构原理(一条SQL的执行过程)

·         SQL调优

·         mysql高可用(MMM、MHA、PXC)

ElasticSearch

·         es集群原理

·         一条查询请求的完整过程

·         es的优缺点

·         es应用场景

·         滚动查询

·         es的倒排索引原理

·         怎么保证es和mysql的数据一致性

MongoDB

·         mongoDB的特性

·         mongoDB的使用场景

·         mongoDB的优缺点

·         使用过程中有没有碰到什么问题

七.项目

常用项目的设计

·         登录注册

·         单点登录

·         短链接

描述自己项目

·         你在这个项目中参与了哪些部分?

·         你是怎么设计的?

·         为什么这么设计?

·         有没有其他方案替代?

·         用到了什么技术?为什么要用这个技术?有没有可替代的?

·         开发过程中有没有碰到什么(没考虑到的)难点?你是怎么解决的

·         还能不能优化?

·         你有什么收获?

    好啦,以上就是java面试知识点梳理大全的全部内容,更多内容干货可关注慕课网~


0人推荐
随时随地看视频
慕课网APP