一、Java
1、Java基础
基本数据类型,变量,修饰符,运算符,元注解,JIT编译器,Java三大特性,继承,重写,重载,抽象类,接口,反射机制,内部类,常量池技术,异常,IO流,泛型,序列化和反序列化等。(每个点最好都吃透,包括原理,底层实现等)
2、Java集合
List:ArrayList,LinkedList,CopyOnWriteArrayList等;
Map:HashMap,LinkedHashMap,ConcurrentHashMap,Hashtable,TreeMap等;
Set:HashSet、TreeSet、LinkedHashSet等;
(各自的区别,底层关键源码,put,get,扩容方法)

  • HashMap和Hashtable的区别
  • 为什么HashMap线程不安全
  • Java集合中的快速失败(fast-fail)机制
  • 安全失败机制
  • HashMap在1.7和1.8之间的变化
  • HashMap的初始容量,加载因子,扩容增量?
  • 解决Hash冲突的方法
  • 哪些类适合作为HashMap的键?
  • Iterator和ListIterator的区别
  • 数组和集合List之间的转换

3、并发编程
(1)进程与线程

  • 进程与线程的区别
  • 线程共享进程的哪些部分
  • 并行与并发
  • 同步与异步
  • 创建线程的方法
  • Java的线程调度
  • Java中的线程状态
  • 线程中常用方法
  • 正确地终止线程
  • sleep 和 wait 的区别
  • join,yield方法
  • 守护线程
  • 线程安全
  • 死锁,活锁,锁死,线程饥饿
  • 手写2个线程同步取票代码
  • 手写生产者消费者线程代码

(2)锁

  • 原子性,可见性与有序性
  • AQS
  • synchronized
  • volatile
  • ReentrantLock
  • ReadWriteLock

(3)线程池

  • 线程池的状态
  • 线程池的构造方法的7个参数
  • 线程池优势
  • 线程池的排队策略
  • 线程池的线程异常处理
  • 常见的线程池类型
  • 常见的线程池阻塞队列
  • 工具类CountDownLatch和CyclicBarrier
  • ThreadLocal
  • Atomic原子类(了解)

4、JVM
这块内容看书吧《深入Java虚拟机》
补充:

  • new对象,经历了哪些步骤
  • 如何破坏双亲委派机制

5、Java面试题

  • StringBuffer与StringBuilder的区别?
  • equals()和“==”的区别
  • equals()和HashCode()关系
  • java和c++的区别
  • Java中类的初始化顺序
  • Java语言的平台无关性是如何实现的
  • 从JVM角度讲讲i++,++i,i=i++
  • restful接口和普通http接口有什么区别?
  • 代码:使用多线程,交替输出abab
  • 为什么java不支持多继承,却支持多实现
  • String为什么设置为不可变的?
  • 什么是字节码?作用?
  • 为什么等待和通知是在 Object 类而不是 Thread 中声明的?
  •  用代码实现实现死锁,并恢复
    × Object方法之finalize()+
    × java的实例一定是分配在堆上的吗?
    × 创建对象的4种方式
    × Java8的新特性
    × java实现同步的几种方式
    × 多线程执行时为什么调用的是start()方法而不是run()方法
    × 方法A中调用方法B,方法B中调用方法A,会出现什么问题
    × 有个整形全局变量a=0,线程一进行a自增,线程二进行a自减,问最后的结果是0吗?

二、MySql

  • 索引的类别,底层实现,优化(索引覆盖、最左前缀、索引失效、索引下推)
  • 哪些列上适合创建索引
  • 哪些列不适合建立索引?
  • 其他常见的存储引擎
  • 逻辑架构
  • 日志模块
  • 事务
  • 锁机制
  • SQL语句
  • 查询优化
  • 主从复制
  • MVCC
  • id自增和uuid的选择

三、计算机网络

  • OSI七层协议模型
  • TCP/IP协议(包括TCP协议,UDP协议,IP协议的报头字段,ARP)
  • 三次握手以及四次挥手
  • 为什么连接的时候是三次握手,关闭的时候却是四次握手?
  • 为什么TIME_WAIT状态需要经过2MSL?
  • 为什么不能用两次握手进行连接?
  • 如果已经建立了连接,但是客户端突然出现故障了怎么办?
  • 滑动窗口
  • TCP和UDP协议的区别?
  • TCP和UDP相比,如何保证可靠性
  • UDP如何实现可靠传输
  • TCP粘包问题
  • UDP协议的应用?
  • TCP/IP协议中的数据包分片与重组功能
  • TCP传输数据流程
  • 累计确认机制,超时重传机制,流量控制,拥塞控制
  • HTTP(请求,响应的头字段,方法的区别,code,)
  • cookie和session的区别
  • SSL协议
  • HTTP1.0,HTTP1.1以及HTTP2.0协议的区别
  • 从浏览器中输入一个网址,会发生什么
  • HTTPS加密过程
  • HTTPs和HTTP的区别
  • HTTP缓冲机制
  • web攻击(XSS,CSRF以及SSRF,SQL注入)
  • ping命令来自什么协议

四、操作系统
1、存储管理

  • 物理地址和逻辑地址
  • 虚拟内存
  • 非连续存储
  • linux(内核态,用户态,系统调用,库函数,shell)
  • 用户态和内核态的切换
  • 如何判断当前是用户还是内核态.
  • 系统如何将一个信号通知到进程

2、进程管理

  • 进程状态,切换
  • 僵尸进程,孤儿进程
  • 进程之间常见通信方式
  • 线程同步方式
  • 进程调度
  • Linux五种IO模型
  • select、poll、epoll的区别
  • 加密
  • 数字签名,数字证书

五、设计模式
除了23中设计模式之外,还要知道《生产者消费者模式》