这部分内容,参考了《面试官的七种武器》一文。 电面与face2face的面试还是有区别的,很多考察方式无法使用。
从简历聊起,逐渐进入正题。
Java语法
重载与重写的区别?
java如何实现多态?
StringBuilder StringBuffer区别?
Nested Class相关概念?
Inner Class, Static Nested Class的使用?
如何在outer world中new一个nested class?
1 public class Outer { 2 3 public class Inner { 4 5 } 6 } 7 8 9 public class Tester { 10 public static void main() { 11 Outer outer = new Outer(); 12 Inner inner = outer.new Inner(); 13 } 14 }
final finally finalized关键字的区别?
static关键字都有哪些使用场景(static方法必须,说出static block及格,说出import static会加分)。
初始化块?
lib
jdk中常见的framework,比如IO
Collection:
HashMap
juc并发框架:
ConcurrentHashMap的实现原理
volatile\sychronized关键字的使用
你常用的并发容器? BlockingQueue的实现ABQ和LBQ的区别?
显式锁与内置锁的区别?
AQS?
原子操作?
对于Spring来说,要重点掌握IOC和AOP的实现原理,其中AOP要知道动态Proxy和CGLIB两种实现方式。
对于ORM框架,要重点掌握MyBatis和Hibernate的实现原理和不同点。
JVM
JVM的运行时内存区域如何划分?
JVM内存模型
GC机制: GC: hotspot系列虚拟机有哪些常用的GC算法?
JVM的性能调优
类加载机制 双亲委派机制
JIT技术,为什么Oracle的Java虚拟机叫做HotSpot?
手写代码
二分查找,快排的思想、时间复杂度分析等等
单链表的反转、判断单链表是否相交
反转二叉树、二叉树的层级遍历 如何使用队列来模拟栈的操作?
手写生产者消费者原型,手写单例模式
设计模式
单例(线程安全的单例?在Java中双重检查加锁为什么会失效?)
你使用过的设计模式有哪些? 什么是策略模式?
Java开发中的其他环节
常见的Web服务器有哪些?
Nignx与Apache的原理及不同
了解过哪些开源框架?
myBatis 与Hibernate相比,主要优势是?
Spring框架的主要特性是?(AOP和IOC)。
Redis持久化有哪些方式?
什么是一致性Hash?
什么是数据库事务,如何实现数据库事务? 如何实现分布式事务?
SQL性能优化方法:select * from table1; 如果有上百万条记录,如何优化? 覆盖索引。
做没做过运维? ps iostat netstat vmstat之类的命令如何使用,等。JVM监控主要是如何获得java core和heap dump,以及如何分析他们,另外一些简单监控命令如jstack和jmap jhat等也要了解。
系统架构设计
如何设计电商秒杀系统?描述如何从各个环节,减少服务器的压力?
其他
项目中最大的挑战? 如何解决的?
非技术
薪资?加班? 职业规划?
参考文献:
http://www.cnblogs.com/lanxuezaipiao/p/3371224.html