Java研发面经分享第一波: 滴滴 & 美团

目录

滴滴

美团

几点建议


Java研发面经分享第一波: 滴滴 & 美团

 

 

 

滴滴

滴滴面试安排比较混乱,如果你通过了一面,那么就优先安排后面的面试,所以导致还没一面的人就得一直苦等。那会儿我是下午一点去的,大概到了快4点才进行一面,后面就嗖嗖嗖地过关斩将到了hr面,也算是运气不错吧。

交叉1面

  • 垃圾回收算法

  • (代码)01矩阵,相邻的1是一个岛屿,找出所有岛屿数(递归解决)

  • 有关注过开源社区吗,都看过哪些源码

  • AtomicInteger实现原理(CAS自旋)

  • synchronized和reentrantLock区别

  • 介绍spring的IOC和AOP,分别如何实现(classloader、动态代理)

  • redis如何处理分布式服务器并发造成的不一致,如果数据库不提供隔离呢

  •  

    OSGi的机制(因为简历写了)

     

交叉2面

  • 2个鸡蛋,100高的楼,最少的次数测出鸡蛋碎掉的临界层,没碎的鸡蛋可以反复用(没做出,应该是14次,网上有解法)

  • 大量字符串找出数量最多的K个,考虑内存放得下和放不下两种情况

  • 解释mysql索引、b树,为啥不用平衡二叉树、红黑树(磁盘和内存的存储方式不同)

  • 垃圾回收算法,为什么要分代处理

  • 跳表

  • IO

  • epoll

  • 一致性hash

  • zookeeper如何同步配置

  • 讲下java锁的原理

  •  

    ConcurrentHashMap原理

     

Boss面

  • (代码)最长回文子串

  • GC停顿原因,如何降低停顿

  • JVM如何调优、参数怎么调

  • 如何用工具分析jvm状态

  • 进程和线程区别

  • epoll和select区别

  •  

    解释mysql索引、b树

     

HR面

  • 五个词来描述自己

  • 长期的计划

  • 兴趣爱好

  • 期望薪水

  • 对岗位的要求

  • 已经拿到的offer

Java研发面经分享第一波: 滴滴 & 美团

 

 

美团

美团的面试安排在下午,不用早起真好~ 等候区就在1楼,工作人员供了面包和一次性杯子,旁边就是运动区,有跑步机、乒乓球桌、桌上足球及一些运动器材,感觉环境还是很不错的(此处应该吐槽下京东,场面极其混乱)。

面试一共三轮,会有工作人员叫名字让你进去面试,就是中间的等待有点久。每轮通过的话就会留下来接着下一面,没过的话工作人员会告诉你“很抱歉,你今天的面试已经结束了”,特别是在漫长的等待中,周围的人一个个被“很抱歉”,那个心理压力可不是一般大。然后就是全部的面试经过,大概整理了下,发现运气还不错,都可以答得上来。面试问题只是参照,面试官会根据你的简历来问针对性的问题,而你也可以引导他来问你擅长的领域,当然有些基础的东西还是必须了解的,比如jvm、spring框架、持久化框架、数据库之类的。

一面

  • 介绍实习经历,讲项目

  • 解释https (先公私钥加密,再对称加密) 为什么不直接公私钥

  • jvm中类加载过程,解释双亲委派加载,及类是在哪个加载器加载的

  • 传值、传引用 传入对象引用,指向一个new的对象,问主函数里的会变吗

  • 找出数组中最多的那个数,除了hashset还有没其他方法(只想到蒙特卡罗法)

  • (代码)输入合法的数字字符串,输出货币字符,就是每隔3位加个逗号,考虑边界处理

  •  

    (代码)有1-10 10个数,和一个数sum,计算用10个数连加得到sum有多少种系数组合(递归)

     

 二面

  • 自我介绍,讲项目

  • spring中bean加载机制,bean生成的具体步骤

  • ioc注入的方式

  • spring何时创建applicationContext(web.xml中使用listener)

  • listener是监听哪个事件(ServletContext创建事件)

  • springMVC流程具体叙述下

  • synchronized和reentrantLock的区别,synchronized用在代码快、方法、静态方法时锁的都是什么

  • 介绍ConcurrentHashMap原理,用的是哪种锁,segment有没可能增大(不会,只会增大每个segment中的entry数组)

  • 如何实现高效的同步链表

  • (代码)层次遍历二叉树,偶数层输出逆序输出(队列,用一个标记记录每一层的结束,统一输出当前层) 

三面

  • 介绍实习经历,讲项目

  • (代码)给定一个字符串,写出所有可能的全排列(递归)

  • 剩下的就是问一下hr面的问题:

  • 怎么理解踏实,你在项目中哪儿体现到了

  • 最近最有成就感的事

  • 你的优点 缺点

  • 最近在看的技术

  • 是否写过其他个人兴趣的小项目

  • 写技术博客吗,github呢

  • 个人职位目标 三面的面试官还是很nice的,最后的部门好像也是由三面的来挑。面试结束第二天就让签了两方,待遇也没得谈。

几点建议

  1. 大家在看面经的时候,可以对照自己的算法和基础知识还有哪些空白,相应地去填补这些空白。

  2. 算法题基本上是每个岗位必备的,大家一定要重视起来。这两篇面经中的算法题还是比较经典的,建议大家面试之前都过一遍~

  3.  

    建议大家去面相关公司之前先看看该公司的面经,对算法题的难度、基础知识的深度有一定的了解和把握。

    针对上面的技术我特意整理了一下,如果想学习Java工程化、高性能及分布式、深入浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友可以查看一下:

     

 

 

Java研发面经分享第一波: 滴滴 & 美团

 

 

Java研发面经分享第一波: 滴滴 & 美团

 

 

 

资料获取方式:关注公众号:“程序员白楠楠”获取上述资料

重要的事情说三遍,转发+转发+转发,一定要记得转发哦!!

Java研发面经分享第一波: 滴滴 & 美团