6、JDK源码
要想拿高工资,JDK源码不可不读。上面的内容可能还和具体场景联系起来,JDK源码就是实打实地看你平时是不是爱钻研了。我面试过程中被问了不少JDK源码的问题,其中最刁钻的一个问题——String的hashCode()方法是怎么实现的,幸好我平时String源代码看得多,答了个大概。JDK源码其实没什么好总结的,纯粹看个人,总结一下比较重要的源码:
List、Map、Set实现类的源代码
ReentrantLock、AQS的源代码
AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的
线程池的实现原理
Object类中的方法以及每个方法的作用
7、 框架

一般来说会问你一下你们项目中使用的框架,然后给你一些场景问你用框架怎么做,比如我想要在spring初始化bean的时候做一些事情该怎么做、想要在bean销毁的时候做一些事情该怎么做、MyBatis中$和#的区别等等,这些都比较实际了,平时积累得好、有多学习框架的使用细节自然都不成问题。
8、
十有八九也都会问到。一些基本的像union和union all的区别、left join、几种索引及其区别就不谈了,比较重要的就是性能的优化,如果对于的性能优化一窍不通,那么有时间,还是建议你在面试前花一两天专门把SQL基础和SQL优化的内容准备一下。

9、数据结构和算法分析
数据结构和算法分析,对于一名程序员来说,会比不会好而且在工作中绝对能派上用场。数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。
10、 Java虚拟机
谈谈Java虚拟机中比较重要的内容:
Java虚拟机的内存布局
GC算法及几种垃圾收集器
类加载机制,也就是双亲委派模型
Java内存模型
happens-before规则
volatile关键字使用规则
也许面试无用,但在走向大牛的路上,不可不会。
11、Web方面的一些问题
Java主要面向Web端,因此Web的一些问题也是必问的。我碰到过问得最多的两个问题是:
谈谈分布式Session的几种实现方式
讲一下Session和Cookie的区别和联系以及Session的实现原理
这两个问题之外,web.xml里面的内容是重点,Filter、Servlet、Listener,不说对它们的实现原理一清二楚吧,至少能对它们的使用知根知底。另外,一些细节的方面比如get/post的区别、forward/重定向的区别、HTTPS的实现原理也都可能会被考察到。

最后,如果有兴趣有时间,建议学习、研究一下SOA和RPC,面向服务体系,大型分布式架构必备,救命良方、包治百病、屡试不爽。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-62275-2.html
甲午海战时