别人的面试总结

时间:2023-01-16 05:32:42

原文地址:http://www.jianshu.com/p/d6c99e7370f5?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-timeline&from=timeline&isappinstalled=1

1.美团

美团好像近期在大肆招人,我面试也是很快,请了一上午的假去的,面试官很不错,顺着简历问了一些项目的问题,问题也主要是项目的问题,也指出项目上可能存在的一些问题,问一下我的解决方案,主要问题汇总一下:

  1. LocalCache用什么实现的,LocalCache怎么保证一致性
  2. 如何减少Full GC的发生,因为我的项目中有localCache的使用,可能会有大对象。
  3. Zookeeper的使用场景。
  4. Mapreduce的数据流转,处理流程。
  5. Hbase的行锁的实现以及效果。
  6. 日常中用Storm有什么问题。
  7. Hbase的架构以及相应的compact和split。
  8. 对比一下ES和Solr的区别,如何选择使用哪一种。
  9. ConCurrentHashMap的架构和如何保证线程安全。
  10. 如何实现一个Zookeeper的分布式锁。

2.某汽车公司

公司整体环境很好,面试官都比较厉害,据说是雅虎北研的班底,问了很多算法和数据结构的问题,感觉更是想选基础好的童鞋。面试问题如下:

  1. 介绍一下公司的数据架构和数据开发的流程。
  2. 密码加密之后,盐丢失了怎么去处理。
  3. Spring的依赖注入的好处,你怎么理解。
  4. mysql的查询慢了,如何优化索引。
  5. MyIsam和InnoDB的区别。
  6. InnoDB的索引结构。
  7. Join操作时内部的原理,Join的时候大表驱动小表还是小表驱动大表,走索引的时候的复杂度是怎样的。
  8. InnoDB的四种隔离机制,RC和RR的区别,以及在使用的时候有什么感受和问题。
  9. 经典的数组翻转之后的二分查找问题。
  10. 经典的走矩阵找和最大的场景。
  11. 经典的判断二叉搜索树是否是严格的二叉搜索树。
  12. 分布式主键生成方式有哪些中,优势和劣势是什么?SnowFlake算法具体是怎么实现的。
  13. Mapreduce做图计算。
  14. Hive的底层存储结构RC结构的Text结构的区别。
  15. 多线程使用的场景。
  16. 进程间的通信方式。
  17. 挖金子问题。
  18. Hive做数据仓库的时候常见的一些问题?比较让你印象深刻的。
  19. InnoDB主键索引的普通索引的区别和查询时的过程。
  20. 自动机的存储是按什么存储的?内存占用怎么评估。

3.京东

首先,京东的面试官十分可以,HR也没的说,主动来接,面试官也很和气,面试题也偏重基础,主要如下:

  1. 写一个注解,就是类似于@Controller的东西。
  2. 对于Solr都用过哪些功能,Solr集群主要是怎么搭建的?版本变化情况等等。
  3. SolrCloud的Query过程,怎么进行Query?怎么计算Score,汇总返回的流程。
  4. Mysql为什么表越大Query越慢。
  5. java线程池的实现,以及溢出的时候的抛弃策略。
  6. JVM的垃圾回收过程,以及相应的CMS和G1的算法。
  7. java8的一些新特性,lambda和并行数据处理等。
  8. Zookeeper使用场景,你是怎么用Zookeeper的。
  9. java锁的可见性的是怎么保证的。
  10. Redis的使用,怎么保证高可用。
  11. 基本的java命令,jstat以及 jstack等,举一个你实际的场景。
  12. HashMap的并发时的死循环问题。
  13. ConcurrentHashMap怎么保证线程安全的,结构是什么样的。

4.百度

百度就有点扯了,做了两个多小时的车去面试,光是在路上就四个小时,然后还是一轮游。第一次去百度大厦,感觉挺大的,保安安保意识很严啊,在外面愣是站了20分钟,到前台用手机号取预约,等面试官也等了好一阵子,感觉好大的架子,面试难度一般,但是愣是没过,面试官以你的spring不太好拒绝了我,spring啥时候成了硬性要求了,我。。。。
面试题的话时间长了可能记不清了,主要如下:

  1. 如何解决Cookie盗取问题
  2. OAuth协议为什么会有一个Redirect阶段
  3. 密码的加密算法
  4. spring的Bean的生命周期
  5. spring如何在加载之前初始化一个Bean
  6. 手写一个线程池
  7. Lock和synchronized区别
  8. jvm内存模型
  9. 垃圾回收算法
  10. redis和Memcached的区别
  11. java8的新特性,做一个List到Map的转换
  12. Mapreduce的核心思想和数据流向

5. 阿里

阿里面试流程比较长,但是面试官水平真心没的说,都是大牛。首先一轮是简历筛选,面试官简要的问了一下项目和离职的原因。二面的话是基本的技术面,面试官没有问太深太细的东西,感觉是要考察广度吧。三面的话,面试还是有深度的,面试官是几个资深的技术专家,面试时比较紧张,但是感觉也学到了很多的东西。总的来说阿里的面试感觉很好,对我提升很大,主要的问题可能记得不是很清楚,大致如下:

  1. jvm内存模型和垃圾回收机制
  2. 对于高并发场景如何应对
  3. 内存溢出的原因和排查方法
  4. 线程池的核心参数,在java中的实现,以及任务抛弃策略。
  5. 常见线上问题排查的思路和流程,如何应对。
  6. Lock和synchronized区别
  7. 如何用Hbase做二级索引
  8. Mapreduce的核心思想和数据流转
  9. CDH版本的Hadoop的改进特性有哪些
  10. 数据库的四大范式
  11. 数据库四大范式和Hive的结合,如何进行表的设计
  12. 你在做数据仓库时碰见的问题有哪些,怎么解决的
  13. sql查询两个数据集的补集
  14. 表的外键索引的问题
  15. 26进制转换问题
  16. 除了Java还学了什么语言?为什么?
  17. 垃圾回收算法CMS
  18. CMS和G1的比较,以及G1的缺点,S0、S1要解决什么样的问题。
  19. java的Stack数据结构的实现
  20. java跳表的并发问题
  21. 针对不同场景,如何去设计线程池的大小,怎样计算线程池的大小
    22.对于同步请求和异步请求,怎么设计线程池等待队列的大小

感想

忙碌了半个月,面试了几家公司,有的时候甚至是一天两家。整个人比较疲倦吧,互联网依然很浮躁,碰见的求职者都是跳槽很频繁的。其实感觉这样并不好。首先,换公司是一件成本很大的事。其次,在一家公司还没站稳,业务还没摸透,就离开,对自身的发展也有很大的影响。对我来说,未来几年真心很重要,真的希望能找一个好团队,做一个好的项目,安安心心的沉淀几年,深耕一个行业。但愿梦想能够实现。

规划

面试了挺多家公司,学到了很多东西。自己也反思了一下自身的优点和不足,后面也应该针对自己的缺点做些努力吧。

  1. 自己有时候有点急功近利,有点急于求成,毕竟工作不到3年,还需要多学,多看和多做。将自己的步子慢下来,多注重细节,精益求精。
  2. 基础知识的话还有比较多的漏洞,像计算机网、操作系统和算法,接下来主要想看的书是《计算机网络第五版》、《操作系统精髓与设计原理》、《算法》和《算法导论》
  3. 对于基础的框架还只停留在会用的阶段,所以对于Spring和Mybatis需要学习核心代码,ioc、Aop、springMVC核心代码、Mybatis-Spring包、Druid连接池。主要看《Spring实战》和《Mybatis官方doc》
  4. Mysql是最常用的DB了,但是目前只是会优化一些索引,解决一些Query慢的Case,但是对于Mysql的运维还是两眼一抹黑,所以接下来需要了解Mysql的运维。主要是《高性能Mysql》
  5. 因为原来的工作经历有做过搜索,感觉搜索里面门道很多,所以还打算把Lucene再深入搞一搞,从Es下手,研究研究Lucene底层的数据结构和Query流程,主要想看一下《信息检索导论》。
  6. 最后一点就是深入的学习java的基础知识吧,读一读一些不常用的数据结构和工具,有精力的话,看看JVM的源码。