面试准备
准备方向
1. java基础(核心卷)
2. 算法
- 剑指offer全题
- leetcode热题200
3. JVM(深入理解java虚拟机)
- 底层
- 线程池(多线程安全),jvm线程调度过程,了解 CAS 的基本原理(Unsafe ),JMM
- 内存区域,内存泄露
- 等待通知机制
- 垃圾回收
- jvm线程调度过程
- volatile,Countdownlatch
- 线程同步
- io多路复用
4. Mysql(学校的书本足够了)
- 索引优化,和 Innodb 索引底层实现(b+树)
- 事务和隔离
- 同步锁sychonized
- 线程池
- sql执行的底层过程
- 多线程的数据统一性维护
Redis(多了解一下原理,写几个demo即可)
- 数据类型
- 底层实现
- redis分布式锁
- 消息队列
- 集群
计算机网络(学校的书足够了)
- tcp和udp:tcp 怎么保证可靠性,如何设计可靠的udp
- 可靠传输的实现·
- 拥塞控制
- http协议:具体到报文的基本作用
- 请求通信全过程
- session和cookie:
- 后端跨域配置
- https协议怎么增加安全性的
等等
微服务(一个springcloud项目)
- 多节点缓存
- CDN 内容分发网络
- DNS 轮询
- 微服务架构的注册和管理
- 消息队列的使用
- 负载均衡
- 海量请求问题,海量数据问题
等等
Netty(自己写项目即可)
- 模型(同步/异步,阻塞/非阻塞)
- BIO,NIO,AIO,IO多路复用等(了解概念即可)
- 内核态,零拷贝,网络io相关
等等
操作系统(学校的书足够了,重点抓住)
- 用户态和内核态
- 虚拟内存
- fork()系统调用
- Linux 无名管道底层原理
- 读者写者问题
- 手撕一个阻塞队列
等等
软件工程(设计模式的了解)
- 责任链模式
- uml类图
- 软工的8个主要过程
框架(springboot的可改造项目)
- springboot如何启动
- spring的ioc和aop
- spring mvc的原理
- 重视基础,建议看源码
等等
项目(docker,springcloud,jvm调优)
- 重点介绍亮点,并画流程图。
等等
各种问题
- 数据结构方面,很喜欢问树,还有基本的hash
- cookie跨域,cookie和session的区别
- 安全方面(xss)
- 浏览器的url栏里输入一个https的请求会发生什么?
- 为什么内部类可以访问外部类的private的方法?
- synchronized原理
- <? extends String> 有什么作用? List 与 List 这两个的getClass是否相对?
- 说抽象类与接口区别?说说从设计模式层面的理解,为什么要有这么2个东西?
- 手撕一个阻塞队列
Top