Java工程师的面试经验和思考

描述

打算换个工作,近一个月面试了不少的公司,下面将一些面试经验和思考分享给大家。另外校招也快要开始了,为在校的学生提供一些经验供参考,希望都能找到满意的工作。

刚开始面试的几家公司,就是备受各种打击、就是一顿狂问,结果答上来的问题没几个,开始给自己的信心造成了一定的影响,后来经过调整后,又恢复到了信心满满的状态。一方面是工作经验有限,另一方面是没有进行系统的复习。后者占主要地位。所以如何复习好技术要点是找到好工作的必要前提(但也有很大一部分的运气成分在里面)。对于应届生而言,由于在校能学的技术有限,所以在开始面试完几家公司后,感觉备受打击是很正常的,这时一定不要灰心,要从每次面试中总结自己的不足,把自己不会的知识都弥补上,到后来你就会发现,找工作其实没那么难的,问来问去就那些东西。

我也不具体说哪家公司的面试,那样对公司不好。首先,总结一些最主要的知识点;然后,分析部分知识点;最后,列出能够回忆起来的面试题和笔试题。希望对大家有所帮助。

重点知识

由于我面试的JAVA开发工程师,针对于JAVA,需要理解的重点内容有:

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基础知识等。所以,如果你时间有限,可以把精力放在基础知识的学习和复习上,如果你时间充裕,可以学习和复习开源框架相关知识。对于开源框架:最好还是看看源码,对自己的好处是很大的。

个人建议

上面比较详细地列出和分析了最近面试过程中的问题,由于时间长久,不可能全部都回忆起来,但是大体上相差不大。对于面试,个人的一些建议:

(1)心态要放好,不能着急。不要看到被人拿到offer,自己没有就抱有心里压力,其实工作谁都可以找到,就看满意不满意,所以着急也是没有用。

(2)身体很重要。不要熬通宵复习、学习,把身体搞垮了得不偿失。保持良好的睡眠。

(3)善于总结面试中的问题。每一次笔试、面试完后,需要进行总结,将自己不会的知识点一定要搞清楚,如果不搞清楚,下次还有可能会问的。其实找工作的过程就是积累知识的过 程,所以善于总结很重要。

(4)不要盲目投递简历。不要看见大公司就投递,也不要投递自己不想去的城市,那样就是在瞎折腾,公司就算要你了,你也不去,还不如把时间放在自己想去的地方呢。

(5)复习需要持续。由于记忆过后会遗忘,所以复习过程中,需要反复进行,一边理解一边记忆,达到闭上眼就能看见知识的体系结构。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分