前言
面试了大大小小各种公司,有BAT的,上市的,AB各种轮的,初创的……今天大概列举了下,至少有30家公司。
在这里我总结了求职面试需要注意的各种问题,希望可以用我收集的《Java面试核心知识笔记》及面试经验帮助大家少走弯路,明确目标,求职成功!!
面试后端开发岗位,面试官不仅考察基础能力,更会重点考察高并发、分布式等架构相关的技术背后的思考逻辑,比如:JVM,微服务,负载均衡,Redis,RPC等。这些都是面试会出现的高频问题,属于必须要掌握的内容。
但这些包含了 N 多优化、N 多细节,对于一些编程的朋友,由于接触不到一线实战架构设计,没有机会去触及到这些,想想多少是有些委屈。不是不想学,实在是找不到资源!刚好,趁着这段时间,整理了一套 “《Java面试核心知识笔记》” 的面试干货免费分享给大家!
这份PDF分成29大模块,有42641字讲解很透彻,涉及了Java核心知识点、Redis、 JVM、Kafka、性能调优 (Tomcat Nginx JVM) 分布式框架(并发编程 Zookeeper Netty dubbo Redis) 微服务框架( Spring Cloud Docker虚拟化 微服务架构 )等知识点 学习笔记+核心知识点+知识脑图+大厂面试题+视频解析
模块一:JAVA集合
- 接口继承关系和实现
- List
- Set
- Map
模块二、JAVA多线程并发
- JAVA并发知识库
- JAVA线程实现/创建方式
- 4种线程池
- 线程生命周期(状态)
- 终止线程4种方式
- sleep与wait区别
- start与run区别
- JAVA后台线程
- JAVA锁
- 线程基本方法
- 线程上下文切换
- 同步锁与死锁
- 线程池原理
- JAVA阻塞队列原理
- CyclicBarrier. CountDownLatch. Semaphore的用法
- volatile关键字的作用 (变量可见性、禁止重排序)
- 如何在两个线程之间共享数据
- ThreadLocal作用 (线程本地存储)
- synchronized和ReentrantLock的区别
- ConcurrentHashMap并发
- Java中用到的线程调度
- 进程调度算法
- 什么是CAS (比较并交换-乐观锁机制锁自旋)
- 什么是AQS (抽象的队列同步器)
模块三:JVM
- 线程
- JVM内存区域
- JVM运行时内存
- 垃圾回收与算法
- JAVA四中引用类型
- GC分代收集算法VS分区收集算法
- GC垃圾收集器
- JAVA 1O/NIO
- JVM类加载机制
模块四:JAVA基础
- JAVA异常分类及处理
- JAVA反射
- JAVA注解
- JAVA内部类
- JAVA泛型
- INA事列化健建可复同1的0对
- JAVA复制
模块五:Spring 原理
- Spring特点
- Spring核心组件
- Spring常用模块
- Spring主要包
- Spring常用注解
- Spring第三方结合
- Spring I0C原理
- Spring APO原理
- Spring MVC原
- Spring Boot原理
- JPA原理
- Mybatis缓存
- Tomcat架构
模块六:微服务
- 服务注册发现
- API网关
- 配置中心
- 事件调度(kafka)
- 服务跟踪(trer-sleuth)
- 服务熔断(Hystrix)
- API管理
模块七:Netty 与RPC
- Netty原理
- Netty高性能
- Netty RPC实现
- RMI实现方式
- Protoclol Buffer
- Thrift
模块八: 网络
- 网络7层架构
- TCP/IP原理
- TCP三次握手/四次挥手
- HTTP原理
- CDN原理
模块十:日志
- Slf4j
- Log4j
- LogBack
- ELK
模块十一:Zookeeper
- Zookeeper概念
- Zookeeper角色
- Zookeeper工作原理(原子广播)
- Znode有四种形式的目录节点
模块十二:Kafka
- Kafka概念
- Kafka数据存储设计
- 生产者设计
- 消费者设计
模块十三:RabbitMQ
- 概念
- RabbitMO架构
- Exchange类型
模块十四:Hbase
- 概念
- 列式存储
- Hbase核心概念
- Hbase核心架构
- Hbase的写逻辑
- HBase vs Cassandra
模块十五:MongoDB
- 概念
- 特点
模块十六:Cassandra
- 概念
- 数据模型
- Cassandra- 致Hash和虚拟节点
- Gossip协议
- 数据复制
- 数据写请求和协调者
- 数据读请求和后台修复
- 数据存储(CommitLog. MemTable、 SSTable)
- 二级索引(对要索引的value摘要,生成RowKey)
- 数据读写
模块十七:设计模式
- 设计原则
- 工厂方法模式
- 抽象工厂模式
- 单例模式
- 建造者模式
- 原型模式
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代子模式
- 责任链模式
- 命令模式
- 备忘录模式
- 状态模式
- 访问者模式
- 中介者模式
- 解释器模式
模块十八:负载均衡
- 四层负载均衡vs七层负载均衡
- 负载均衡算法/策略
- LVS
- Keepalive
- Nginx反向代理负载均街
- HAProxy
模块十九:数据库
- 存储引擎
- 索引
- 数据库三范式
- 数据库是事务
- 存储过程(特定功能的SQL语句集)
- 触发器(- -段能自动执行的程序)
- 数据库并发策略
- 数据库锁
- .基于Redis分布式锁
- 分区分表
- 两阶段提交协议
- 三阶段提交协议
- 柔性事务
- CAP
模块二十:一致性算法
- Paxos
- Zab
- Raft
- NWR
- Gossip
- 一致性Hash
模块二十一:JAVA算法
- 二分查找
- 冒泡排序算法
- 插入排序算法
- 快速排序算法
- 希尔排序算法
- 归并排序算法
- 桶排序算法
- 基数排序算法
- 剪枝算法
- 回溯算法
- 最短路径算法
- 最大子数组算法
- 最长公共子序算法
- 最小生成树算法
模块二十二:数据结构
- 栈(stack)
- 队列(queue)
- 链表(Link)
- 散列表(Hash Table)
- 排序二叉树
- 红黑树
- B-TREE
- 位图
模块二十三:加密算法
- AES
- RSA
- CRC
- MD5
模块二十四:分布式缓存
- 缓存雪崩
- 缓存穿透
- 缓存预热
- 缓存更新
- 缓存降级
模块二十五:Hadoop
- 概念
- HDFS
- MapReduce
- Hadoop MapReduce作业的生命周期26. Spark
模块二十六:Spark
- 概念
- 核心架构
- 核心组件
- SPARK编程模型
- SPARK计算模型
- SPARK运行流程
- SPARK RDD流程
- SPARK RDD
模块二十七:Storm
- 概念
- 集群架构
- 编程模型(spout->tuple-> bolt)
- Topology运行
- Storm Streaming Grouping
模块二十八:YARN
- 概念
- ResourceManager
- NodeManager
- AplicationMaster
- YARN运行流程
模块二十九:云计算
- SaaS
- PaaS
- laaS
- Docker
- Openstack