互联网面试准备


1. 算法基础 
写java的基本上都是做应用系统的,用到算法的机会几乎没有,所以一般不会考。但是如果工作年限比较长,保不齐面试官怀疑你的编程能力,故意要考考,所以快排、堆排、逆转链表、遍历二叉树之类的基础还是复习复习吧。 
如果面的是bat核心部门,担心碰见装逼人士的话,也可以提前复习下《编程之美》之类的。 
  
2. java基础 
hashmap面试官最喜欢考,一定要搞明白原理。 
treemap知道就可以,应该没人闲的蛋疼考红黑树。 
threadlocal面试官也喜欢考,要搞明白原理 
反射、动态代理、ioc、aop复习下吧,几乎必考 
nio、aio几乎都会问,抽空写写例程,知道netty mina 
class loader: 知道双亲委派,如果知道tomcat、jetty class loader异同更佳 
  
3. gc 
gc很多面试官都喜欢考 
面试前背熟各种gc算法的区别,理解原理。 
G1很多面试官自己都不明白,没时间就不用管。 
  
4. 高并发 
传统IT一般接触不到高并发,不过没关系按下面说的做,应付面试问题不大 
把java.util.concurrent下面所有的包和类通读一遍,理解原理、记住核心代码、写例程,网上有很多concurrent相关类原理解析的文章,对着文章看源代码理解起来问题不大。 
有些类代码很复杂比如aqs,看不明白就算了,也不用太花功夫,记住原理即可,因为大部分面试官也不明白。 
一定要写例程,例程最好跟你的业务能扯上一点点关系,这样面试的时候就是你实际项目里面的代码了。 
面试官喜欢考的类有:ConcurrentHashMap、读写锁、Condition、线程池、Barrier、CountDownLatch、Callable、BlockingQueue 
  
5. hdfs和mr 
传统IT一般也接触不到,如果不想准备就算了,如果想准备的话,就在自己的开发机上撘3个linux虚机, 按照网上的教程自己一步一步撘一个hadoop环境出来,然后找几个实际业务中生成出来的log,写几个mr程序处理一下。 
面试的时候就可以很谦虚的说,实际项目里面用过,但是用的不多 
  
6. application server 
websphere、weblogic、jboss之类的就不用准备了,应该没人问你这些啦。 
有时间的话,看看tomcat和jetty的源代码,重点看线程模型和io,这将是一个很好的加分项 
  
7.  数据库 
oracle、sybase、db2不会有人关心了,如果之前没用过mysql的话,找本介绍innodb原理的书好好通读一遍吧。 
理解myisam和innodb的区别 
理解关系型数据库索引的原理,理解一些简单的索引优化的原则。 
面试官很喜欢给出一堆where子句,考索引、复合索引什么情况下起作用 
  
  
8. 缓存 
一致性哈希很多面试官喜欢考,提前准备下吧。 
  
9. ssh框架 
这些没搞过就没搞过吧,这种框架层面的东西,对于一个有经验的java码农,学起来也就是分分钟的事情。 
不过你也可以说这些我没用过,但是我知道原理,然后说一堆动态代理、cglib的原理出来,也是加分。 

你可能感兴趣的:(互联网面试准备)