后续:Java工作4年在北京对京东、携程、国美、阿里、美团等大厂的Offer的选择
已经凌晨2点多了,看来今天是失眠了,反正睡不着,写篇日记总结一下我最近面试经历吧。
2019年5月1日办理了离职手续,离开了万通中心,也算是和我的第二个东家正式说了再见,其实还是很喜欢国贸的,
这是个美妙的地方,容纳着很多金融界人才们的梦想,每每晚上走到这里你会感叹帝都的夜景好美,只可惜这里的多数人都顾不上欣赏这里的风景,
每个人都生活在压力下,成为了金钱的奴隶,但这并不是什么坏事,因为他们上有老下有小,身上背负着责任,也正是他们的身体力行才造就了CBD的繁华,
而我最终选择了离开这个地方。

 我从不否认我的离开和钱有关,这确实是其中一个因素,我也像所有人一样背负着责任,所以我需要钱,但我更想说这次的离开是为了寻求一个对我而言更大的舞台,

让自己更加快速的沉淀和成长。我曾经试图向我的领导们陈述我的价值观,我并不认为钱和理想是互斥的,难道赚的越少你的工作就越有价值么,很明显不是的。

美团网


第一个投的是美团网,去年刚上市的,发展比较迅速、美团的技术在国内也是数一数二的。
先填了一份资料,然后是就是面谈了
算法和数据结构以及架构设计方面,答的很不好,好多都忘了。
一.自己实现一个hashMap,这个难不倒我,jdk的源码中最熟悉的就是Collection包了,使用数组和内部类完成哈希表的数据结构,
再通过hash算法和链表操作完成哈希表的插入查询等操作;
二.并发编程中的生产者消费者模式代码,没写出来,忘记了,真是不应该哦,最简单的方式就是使用wait和notify去阻塞唤醒(这么基础的东东我都能忘),
当然还有很多优雅的写法,比如使用可重入锁(ReentrantLock),使用锁计数器(CountdownLatch)等,当时一种都没想到,自责中;
三.字符串的一道算法题,这类小case,就是位图法,毫无压力的写出;
四.写一个自己熟悉的架构图,于是我把我的老东家的系统架构搬了上去,简单来说就是通过hessian将前台调用逻辑与后台业务逻辑解耦,
实体可以通过序列化和反序列化传递(这是hessian最擅长干的事情),最终提高后台业务逻辑接口的可重用性以及系统的可维护性。
还有两三道题目忘记是什么了。时间还是很紧的,只有一个小时时间。交卷之后开始面试,一面继续聊了聊jdk的Collection包,
还有就是之前在公司所做项目的部署思想。二面就是聊聊java并发锁机制,为什么要用读写锁而不用synchronized这种同步锁,事务隔离性的理解,
为什么会有脏读,可重复读,提交读等,spring的事务管理是如何实现的,编程式如何实现,aop式如何实现,动态代理的原理是什么,
事务的传播性的理解。总之都是这类比较重视原理的问题,答的还可以吧,最后就是部门负责人来直接面试,谈谈为啥离职,期望薪资什么的,也聊了下技术。
问我会不会来,最后我回答我考虑一下,下周三给回复,然后就离开了。感觉公司环境很好,饮料零食什么的都是免费吃。

360

第二个去的是360,没有笔试,直接面试,一面主要问基础,String内容存放在哪儿,答运行时常量池,然后我把jvm的内存结构讲了一下,
堆、栈、程序计数器、方法区等,每块区域的作用之类的,那么问题就来了,jvm的回收机制是什么,感觉问的有点大,不知道从哪儿说起,
只好从分代回收算法说起了,从GC ROOTS的引用链机制到新生代的小空间复制算法再到老生代的标记清除算法,最后就是新生代和老生代
之间的关系以及跃迁等,随后面试官点了点头说那你再讲讲jvm的类加载机制吧,委托双亲机制吧,正准备讲,那小哥问反射机制是如何
利用类加载机制的呢,只好把反射的实现原理也balalala。。。继续发问,懂哪些设计模式,答:单例,建造者,观察者,模板方法模式,
迭代器模式balala,你在项目中用到过观察者模式吗,怎么用的。答:做统一配置组件的时候使用到了zookeeper的发布订阅,创建了监听链表,
完成应用系统的注册和同步,balalala,边写代码边讲细节,正讲的起劲,被打断,你写个单例模式吧,把你认为效率最高的单例实现写出来,
当然是通过jvm的内部类机制实现单例了,又快又安全,看完面试官点点头,说再写一个双检查的懒汉单例模式吧,好的遵命,写完后小哥发问,
为什么要用volatile关键字,答:在高并发时会出现并发模式异常,volatile可以防止指令重排,创建对象操作并不是一个原子操作,
分为三个步骤,balala,讲了一通,面试官被说服,随后面试官发问,能不能讲讲线程的内存模型,哈哈,幸好以前研究线程可见性的时候研究过这个,
讲完面试官很满意,感觉他已经hold不住我了(暗自自喜),谈谈你对cas的理解,答:是指乐观锁吗,还没等我说,面试官说好,你等一下,
二面面试官走了进来,开始发问,假设有一个场景,系统需要某个特定时间内响应用户请求,比如说100ms内完成用户请求,
但是在最高峰的时候每单位时间几百万的用户请求,也就是高并发,但我必须要实现系统响应及时,而且高可用(不宕机),假如你是架构师,
你该如何架构这个系统,聊聊你的方案,当时听完脑子就蒙了,恨自己当初没去看那本《大型分布式网站架构》书,于是就开始凭感觉说,
首先肯定需要做缓存集群,防止数据库雪崩,数据库如果请求量很大也需要分库分表,各种乱说,说得自己都晕乎乎的,最后面试官说有的对有的不对,
而且没说到点子上,不过可以理解,你工作经验才4年。然后向我介绍了一下他们部门是做什么业务的,随后问我为什么离职等,到饭点了,
我就被拉走了。第二天hr打电话给了offer,聊了聊薪资待遇,360待遇不错,吃饭还免费,挺好的。

陌陌


第三个是陌陌,听说是个约炮的,哈哈哈,只是对社交软件充满了好奇,去看看,一面先写代码,写一个二叉树的深度遍历,小case,递归搞定,
随后发问memcache的内存管理机制,答:slab分块管理,最终以chunk分配,维护了一个LRU的双向列表,balabala。。。然后又问了问zookeeper的一些东东;
二面问的比较杂,大部分不记得了,竟然还问vi命令,我也是跪了。

百度


第四个百度,百度今年是停止社招的,大部分部门都不社招只有校招,但也有少数部门有特批名额,于是就去试了一把,一面刚来就是写代码,
一个单链表的算法题目,写完,面试官很满意点点头,随后面试官发问在你的项目中spring是如何管理zookeeper的,答:balabala,
了解zookeeper的leader选取算法吗,讲一下他的流程,知道zab算法吗,讲一下他的流程,汗,问的问题都太变态,没想到会问的这么深,
zab算法太复杂了,zab是基于paxos的,而paxos可是获得图灵奖的算法,勉强说了一下,说的很心虚,有好多盲点自己也没搞清楚,
不过好在面试官也不往下问了,其实我估计他也不见得会(窃喜),随后让我稍等一下;一会儿过后二面面试官过来了,是个成熟的大叔,
二面只问了两个东西,一个jvm,一个并发编程,jvm主要是性能调优,jstack的使用,full GC和minor GC的分析等,并发编程问的很细,
发问多个线程达到同一个状态然后再一起执行,达到某一个状态之后再继续并发执行,这种怎么实现,答:jdk5之后有一个CyclicBarrir,
通过这个来实现,它可以重用等balabala说了一些,再发问读写锁中加读锁后如何避免写线程饿死,答:加策略balabala,发问如何实
现控制线程在某段时间内完成,不完成就撤销,答:实现Callable接口,返回FutureTask类或者Future接口,然后去触发撤销操作。
开始问项目,描述一下对账系统,balabala…数据量大吗,并发量高吗,数据库怎么设计的等,随后让我等一会,又过来一个面试官,
问我业务,你在第三方支付公司,能不能讲一下支付的技术流程,balabala…把自己理解的支付流程讲了一下,最后补了一句,
支付的细节业务很复杂,我也没完全明白呢,汗,让我等了一会,随后面试官说你回去等消息吧,我想完蛋了吧,难道因为业务不熟被刷,
真不甘心;心凉了一个星期,结果hr在星期一打电话说让星期四去最后一面,是技术总监的面试,星期四屁颠屁颠的去了
(话说百度大厦离国贸太远了,地铁每次要坐一个半小时,我也是跪了),四面开始,发问异步处理的幂等性,不是很难,
唯一性索引或者开发分布式锁呗,随后风格立马就转了,不问技术了,发问你觉得你来百度能给百度带来什么样的价值,
你希望你加入的百度的团队是一个什么样的团队,你如何和产品经理沟通,假如你和其他研发接口制定无法统一你该如何解决等,
一点准备都没有,回答的结结巴巴很是不好,哎,听天由命吧!

阿里


第五个面的是阿里,百度面完等消息,闲来无事查看公司招聘信息,看到阿里招聘薪资很诱人。
哈哈,我就是这样一个无节操的人,开始是电话面试,然后是面试,二面和三面,主要面试技术点有
JVM相关:
jvm中一次完整的GC流程(从ygc到fgc)是怎样的,重点讲讲对象如何晋升到老年代,几种主要的jvm参数等
你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms
当出现了内存溢出,你怎么排错
JVM内存模型的相关知识了解多少
简单说说你了解的类加载器
JAVA的反射机制

网络:
http1.0和http1.1有什么区别
TCP三次握手和四次挥手的流程,为什么断开连接要4次,如果握手只有两次,会出现什么
TIME_WAIT和CLOSE_WAIT的区别
说说你知道的几种HTTP响应码

架构设计与分布式:
tomcat如何调优,各种参数的意义
常见的缓存策略有哪些,你们项目中用到了什么缓存系统,如何设计的,Redis的使用要注意什么,持久化方式,内存设置,集群,淘汰策略等
如何防止缓存雪崩
分布式集群下如何做到唯一序列号
设计一个秒杀系统,30分钟没付款就自动关闭交易
如何做一个分布式锁
用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗
MQ系统的数据如何保证不丢失
分布式事务的原理,如何使用分布式事务
什么是一致性hash
说说你知道的几种HASH算法,简单的也可以
什么是paxos算法
redis和memcached 的内存管理的区别等等
后面给了我offer。但是最近996不知道如何选择。

总结

就写到这了,写的有点多了,也算是给这两个星期面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。

最新进展

可以看我写的这篇文章:https://blog.csdn.net/SpringBoot_/article/details/90142876

工作4年从美团、360、陌陌、百度、阿里、京东面试回来感想相关推荐

  1. Java工作4年从美团、百度、阿里、京东面试回来感想

    又是一个失眠的夜晚,反正睡不着,写篇日记总结一下我最近面试经历吧. 2019年5月1日办理了离职手续,离开了万通中心,也算是和我的第二个东家正式说了再见,其实还是很喜欢国贸的, 这是个美妙的地方,容纳 ...

  2. 工作4年从美团、陌陌、百度、阿里面试回来感想

    写篇日记总结一下我最近面试经历吧. 最近办理了离职手续,离开了万通中心,也算是和我的第二个东家正式说了再见,其实还是很喜欢国贸的, 这是个美妙的地方,容纳着很多金融界人才们的梦想,每每晚上走到这里你会 ...

  3. 工作4年从美团、360、陌陌、百度、阿里、京东面试程序员的回来感想

    工作4年从美团.360.陌陌.百度.阿里.京东面试回来感想 原创: spring boot JAVA高级架构 今天 已经凌晨2点多了,看来今天是失眠了,反正睡不着,写篇日记总结一下我最近面试经历吧. ...

  4. 工作4年感想:美团、360、陌陌、百度、阿里、京东面试

    已经凌晨2点多了,看来今天是失眠了,反正睡不着,写篇日记总结一下我最近面试经历吧. 2019年5月1日办理了离职手续,离开了万通中心,也算是和我的第二个东家正式说了再见,其实还是很喜欢国贸的, 这是个 ...

  5. 2022秋招计算机视觉算法工程师面经(旷视、字节、科大讯飞、大华、海康、网易、华为、小米、腾讯、百度、阿里、完美世界、美团、陌陌)

    打个小广告~博主签了小米,面试小米请填写我的内推码!! NTAN8wx 可以私信我免费简历指导哈(不过我也比较菜不一定能提出有用的建议)~ 首先是小建议环节:如果你还有时间,尽量能写出一篇论文,面试的 ...

  6. 2020最新大厂(阿里头条百度快手美团滴滴猿辅导陌陌)Java开发岗位社招面试干货分享总结

    (尊重劳动成果,转载请注明出处:https://yangwenqiang.blog.csdn.net/article/details/106033403 冷血之心的博客) 前言: 按照惯例,我先来个自 ...

  7. 陌陌 3 千万数据暗网出售;美团反腐 89 人受刑事查处;iPhone 推迟 5G 采用时间 | 极客头条...

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 快讯速知 陌 ...

  8. ❤️让人心跳加速的陌陌案例,大数据必需学会的基础案例!❤️ 【推荐收藏】

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 已列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 陌陌案例 一.陌陌案例的需求说明 二.陌陌案例中表设计内容 1. ...

  9. 陌陌财报双双超预期,什么才是它的基本盘?

    文 | 易牟 来源 | 螳螂财经(ID:TanglangFin) 陌陌,又双叒叕超了预期. 2020年第一季度,各行各业几乎都遭受疫情冲击,跨越空间的互联网由于线上特性,被各路分析师一顿看好,给了各个 ...

最新文章

  1. php tab标签,JavaScript代码分享:tab标签的切换
  2. windows下线程创建
  3. 【赠书】阿里巴巴官方出品,工业级知识图谱最新书籍领取!
  4. C语言三种常见排序算法
  5. [洛谷P1438] 无聊的数列
  6. Arm-Linux 移植 ssh
  7. (24)打两拍verilog与VHDL编码(学无止境)
  8. 支离破碎的 Android
  9. 全国、省、地级市、区县乡镇级矢量地图2021年(最新)
  10. 微信H5分享钉钉分享设置方法
  11. ubuntu qemu安装教程
  12. springboot使用logback
  13. H3C 无线优化经验
  14. 每日一介绍:烽火算法2.0
  15. python从小白到大牛百度云盘_Python从小白到大牛
  16. 2004-2020年全国31省环境规制强度
  17. Cisco Packet Tracer(配置OSPF)
  18. vb.net 预生成事件获取SVN版本号,编译日期,版本日期
  19. AlarmManager 中 setRepeating用法
  20. Tyvj 1038 忠诚

热门文章

  1. Zabbix Server trapper 命令注入漏洞 (CVE-2017-2824)
  2. 记录一次Win10莫名其妙被植入一个恶意软件
  3. LDO和DCDC电路的区别以及PCB设计选择
  4. ADAMS-Simulink联合仿真-零基础(一)
  5. InfluxDB 2.0 原理与应用实践
  6. 服务器多系统ssd寿命检测,检测 SSD 剩余寿命 寿终正寝之前还能挽回数据
  7. 图书馆机器人索书号识别
  8. rbr mysql_Lossless RBR for MySQL 8.0?
  9. 关于微程序、微指令和微命令
  10. 基本函数画图软件(直接下载,一元二次方程图像,幂函数图像,指数图像,三角函数图像,反三角函数图像)