https://blog.csdn.net/csdnsevenn/article/details/89324542
JVM内存管理机制和垃圾回收机制(基本每次面试都会问,一定要搞得透彻)
JVM内存调优(了解是怎么回事,一般做项目过程中使用较多)
设计模式(熟悉常见设计模式的应用场景,会画类图,实在不行背几个也是有用的)
多线程(每次都会问,包括线程和进程、线程状态、线程并发的操作等,需要深入复习)
JAVA集合类框架(理解框架图、HashMap、ArrayList、HashSet等的关系和区别,其中HashMap的存储机制几乎每次都有问)
JAVA的异常处理机制(异常的分类、常见的异常有哪些、Try catch finally的使用)
JVM运行机制(理解JVM是如何运行的)
Linux基础(面试笔试中对linux也有一定的要求,建议最好搭建一个linux虚拟机,并练习常用的命令)
数据结构和算法
常见的排序算法就不说了,需要理解其原理和会写代码,还有时间空间复杂度也要知道
队列、栈:需要理解其存取结构,并能在某些场景下使用
二叉树:树的遍历、树的深度、按层次输出、平衡二叉树、逆序打印树等
链表:逆序、合并两有序的链表、判断链表是否又环、链表倒数第K个元素等
字符串:KMP算法、动态规划(这个是重点,需要好好理解动态规划,常见的题有:求解最长回文子串、求解最长公共子串等)
海量数据处理:现在好多大公司都会问海量数据的处理,所以需要掌握常见的处理方法,比如Bit-map、分而治之、hash映射等,可以百度看看相关的文章,加深理解
数据库相关(数据库是面试的重点,每家公司都会问)
最基本的数据库CRUD操作要熟悉,能够根据表写出需要的SQL语句
事务、零时表、索引、表锁、行列锁、视图、存储过程等都要深入理解
互联网公司处理的数据量都很大,所以有必要对数据库优化和大数据的处理进行了解和熟悉
建议看看Nosql和redis等非关系数据库相关的书籍和资料
开源框架
像SSH等的开源框架在面试过程中问的很少,但是也是有必要了解SSH的运行原理和使用。面试主要考察的是基础,所以更加偏向于考察数据结构、算法、数据库、JAVA基础知识等。所以,如果你时间有限,可以把精力放在基础知识的学习和复习上,如果你时间充裕,可以学习和复习开源框架相关知识。对于开源框架:最好还是看看源码,对自己的好处是很大的。