一:总结
这一两个星期以来,去过5-6家公司,面试java开发工程师,发现自己很多地方的 不足,平时因为自己在创业型的公司呆的多,造成自己懂得东西多,很多东西都会,但是发现没一个是很精的,这样在面试中短板就提现出来了。首先说下,自己从前端到后端,因为带创业公司做事,很多时候,前端的或也是自己弄了。自己会BootStrap,angularJS,extJS,css,html,JAVAScript,就是这些知识基本的会,就是能操作,了解的深度不够。JAVA后端的框架,因为现在用的多的就是SpringMVC,Mybatis,Hibernate.缓存框架Redis。数据库用的是Mysql,可以自己进行设计数据库。说回来了,这些知识点,深度的不够,这里面的框架知识,自己没有深度理解,在面试的时候,发现问题很多,太过于表面的东西,基本面试就碰壁,虽然自己从事项目经验还可以,但是对于底层的实现,讲不清楚,造成面试总是过不了,因为对于三年以上的JAVA工程师,不只是简单的编码,而是对自己的代码质量有要求,可以去分析问题。虽然自己部署过很多项目,然后,知道在Linux服务器中,部署环境,熟悉一些常规命令。也操作过docker的命令,部署环境,但是其实很多东西,去了解,去学习了,很快就忘记了。
二:弥补自己不足
经过这两周时间,发现,自己确实很多不足,做事和学习都不能仓促,不能急,平稳的,不慌不急的学习,因为人确实容易将自己看过的忘记,因为其实平时编码的时候运用到的东西就那么些。然后确实在工作中没有注意细节,造成自己没有去看源码。然后仓促的完成了一个项目,其实,在完成每一个功能模块的时候,自己应该记下来,然后反思自己的不足,然后花自己一天时间去看自己的代码,然后想办法最好的优化,这样对自己的能力得到提高和突破。
这两周,其实发现很多公司面试的时候,问的比较基础,主要注重平时编码的时候有去关注这些细节没,比如,JVM的知识点,其实很多人都知道,在现实编程中,这个点很容易被忽视的,因为现在的环境肯定都是最好的,内存大,CPU大,然后部署到服务器上,基本不容易出现死掉。当然,不出现死掉,基本就花在这上面的时间就少了,就没有去注意到这些细节。如,JVM的内存区域,JAVA内存模型,垃圾堆回收策略等。其实这些东西确实面试的时候基本都需要问,比如怎么去优化,启动应用程序的时候用的什么命令,-mns -mnx等。还有问就是新生代满了,再怎么去分配一个比较大的对象。这些确实在项目中,好像确实没怎么运用,但是这就是公司面试的基本技能,回答不了,说明准备不充分,很抱歉,面试没通过。
其次问的比较多的就是JAVA中常用到的一些数据结构,List,Set,HashMap,LinkedMap,Queue等,其实这些确实是我们最容易用到的东西,如果这些没有回答上来,确实怪自己没有去看这些源码。还有就是询问在多线程中那些事线程安全的。发现询问的这些比较多。还有就是关于框架的运用,以及理解。经过这两周,发下自己好多基础知识不牢固。所以,还是在面试过程中才能发现自己的不足,让自己快速成长的方法,还是细心,平时多看源码,然后慢慢的理解渗透。因为理解透彻的东西,是不容易忘记的,只有自己简单的看过点,认为自己懂了,其实很快发现就忘记了,加油自己。不能贪玩了。