前言
看了许多面试相关的文章,总结出高频面试题目,整理到这里。
重点知识
JVM内存管理机制和垃圾回收机制(基本每次面试都会问,一定要搞得透彻)
JVM内存调优(了解是怎么回事,一般做项目过程中使用较多)
设计模式(熟悉常见设计模式的应用场景,会画类图,实在不行背几个也是有用的)
多线程(每次都会问,包括线程和进程、线程状态、线程并发的操作等,需要深入复习)
JAVA集合类框架(理解框架图、HashMap、ArrayList、HashSet等的关系和区别,其中HashMap的存储机制几乎每次都有问)
JAVA的异常处理机制(异常的分类、常见的异常有哪些、Try catch finally的使用)
JVM运行机制(理解JVM是如何运行的)
linux命令http://www.php100.com/html/webkaifa/Linux/2009/1106/3485.html
数据结构和算法
常见的排序算法就不说了,需要理解其原理和会写代码,还有时间空间复杂度也要知道
队列、栈:需要理解其存取结构,并能在某些场景下使用
二叉树:树的遍历、树的深度、按层次输出、平衡二叉树、逆序打印树等
链表:逆序、合并两有序的链表、判断链表是否又环、链表倒数第K个元素等
字符串:KMP算法、动态规划(这个是重点,需要好好理解动态规划,常见的题有:求解最长回文子串、求解最长公共子串等)
海量数据处理:现在好多大公司都会问海量数据的处理,所以需要掌握常见的处理方法,比如Bit-map、分而治之、hash映射等,可以百度看看相关的文章,加深理解 (Bit-map、分而治之、hash映射、分布式处理(Hadoop)、Trie树、双层桶排序等)
数据库相关(数据库是面试的重点,每家公司都会问)
最基本的数据库CRUD操作要熟悉,能够根据表写出需要的SQL语句
事务、零时表、索引、表锁、行列锁、视图、存储过程等都要深入理解
互联网公司处理的数据量都很大,所以有必要对数据库优化和大数据的处理进行了解和熟悉
建议看看Nosql和redis等非关系数据库相关的书籍和资料
开源框架
spring
mybatis
netty
需要阅读源码
说说开源框架中用到的设计模式、设计思想
网友评论