(这个部分的内容是频率高的内容,个人觉得是因为结合了数据结构,还可以结合并发安全考。其实要通关这部分,最好就是把JDK 标准类的源码实现一次):
ArrayList 、 LinkedList、 Vector 的底层实现和区别
HashMap 和 HashTable的底层实现和区别,两者和 ConcurrentHashMap 的区别。
HashMap 的 hashcode 的作用?什么时候需要重写?如何解决哈希冲突?查找的时候流程是如何?
Arraylist 和 HashMap如何扩容?负载因子有什么作用?如何保证读写进程安全?
TreeMap 、 HashMap 、 LinkedHashMap 的底层实现区别。
Collection 包结构的组成, Map、 Set 等内部接口的特点与用法。
Thread 与 Runable 如何实现多线程
线程同步的方法有什么;锁, synchronized 块,信号量等 点击查看相关资料哦
synchronized锁的等级:对象锁、类锁 点击查看资料
生产者消费者模式的几种实现,阻塞队列实现, sync 关键字实现, lock 实现等
ThreadLocal 的设计理念与作用, 实现分析 内存泄露问题 如何使用
ThreadPool 用法与优势 参考链接
线程池的底层实现和工作原理(建议写一个雏形简版源码实现) 参考链接
几个重要的线程 api ,interrupt , wait , sleep , stop 等等
线程安全问题。 HashMap 是否线程安全,为何不安全。 ConcurrentHashMap,线程安全,为何安全。底层实现是怎么样的。
J.U.C下的常见类的使用。 ThreadPool的深入考察; BlockingQueue的使用。(take,poll的区别,put,offer的区别);原子类的实现。
各种常见锁使用
如果上面这些掌握很好,还可以看看更深一点的 False Sharing,Cache Line,可见性与原子性等;
IO 框架主要用到什么设计模式
NIO 包有哪些结构?分别起到的作用?
NIO 针对什么情景会比 IO 有更好的优化?
反射机制
String 类内部实现,能否改变String 对象内容,比较经典的 String 字面量笔试题
Object 有哪些公用方法?
try catch 块, try 里有 return , finally也有 return ,如何执行这类型的笔试题
Exception 与 Error 的区别
泛型的优缺点
另外就是关注最新版本 jdk 的新特性,例如 Lambda 表达式
自动内存管理机制, GC 算法,运行时数据区结构,可达性分析工作原理,如何分配对象内存
类加载机制,反射机制,双亲委派机制,类加载器的种类
Jvm 内存模型,先行发生原则, violate关键字作用
内存泄漏~
进程和线程
死锁的必要条件,怎么处理死锁。
段存储,页存储,段页存储的区别。
进程的几种状态和转换
逻辑地址、物理地址的区别
进程调度算法
进程管理(进程状态、进程同步、进程线程区别、进程调度)
经典的同步问题(生产者消费者、哲学家进餐、读者写着)
死锁的产生原因、必要条件、预防死锁的方法、死锁的检测与解除
存储器管理(分页、分段、段页式)
虚拟存储器(请求分页,页面置换算法)
OSI 与 TCP/IP 各层的结构与功能,协议和作用。
TCP 与 UDP 的区别。
TCP 报文结构。
TCP 的三次握手与四次挥手过程,各个状态名称与含义, TIMEWAIT 的作用。 TCP 的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
TCP 拥塞控制。
TCP 滑动窗口与回退 N 针协议。
Http 的报文结构。
Http 的常见状态码含义。
Http request 的几种类型
Http1.1 和 Http1.0 的区别
Http 怎么处理长连接。
Cookie 与 Session 的作用于原理
访问 www.xxx.com ,描述一下这个过程发生什么
socket 通信的几个关键函数
IP 地址分类
路由器与交换机区别
了解交换机、路由器、网关的概念,并知道各自的用途
剑指 offer
编程之美
Cracking
程序员代码面试指南
后续待补充