写点什么

Java 程序员裸辞两个月,面试阿里、美团,终拿美团 offer

用户头像
周老师
关注
发布于: 22 小时前

我是一名本科毕业但是非计算机专业的程序员,上个月面完了阿里,结果是没通过,然后上周又面了美团,上周五才面完了 HR 面,我自己感觉希望也不大,希望能走运拿到 offer 吧!

虽然自己记性不太好,但还是记录了一下,热乎乎的面经啊,也有一些问题没能记住。三面技术面经如下:


美团一面:

中间省略掉大概几个问题,因为我不记得了,下面记得的基本都是我没怎么答好的。

1、了解 SOA,微服务吗?

2、分布式系统如何负载均衡?如何确定访问的资源在哪个服务器上?

一.轮询。二.随机。三.最小响应时间。四. 最小并发数。五.哈希。

3、设计一个分布式负载均衡缓冲系统,如何快速定位到是那个服务器(使用 key 分段、一致性 hash)

4、如何保证缓冲区和数据库之间的强一致性(使用加锁)

5、HashMap 高并发情况下会出现什么问题,(扩容问题)

6、说一说在浏览器中输入一个 url 后,直到浏览器显示页面的过程中发生了什么(我主要说了 DNS,然后他有接着问了 DNS 的细节,然后就是 ARP 路由,然后服务器处理,返回,浏览器呈现,获取 html 中的依赖资源)

7、字符串中句子的反转(比如 ABC DEF,输出 DEF ABC)(很简单,可以先反转整个字符串,然后反转单词,或者先将句子切分为单词,然后反转);

8、给任意二叉树的所有结点加 next 指针(这个有原题,也可以参考按层打印二叉树)。

9、用过反向代理吗?

美团二面:

1、进程间共享内存的方式有哪些?(8 种)

2、linux 下如何查看网络端口状态(netstat),如何查看内存使用情况(top)?

3、ConcurrentHashMap 如何扩容?

4、知道 java 的异常吗?

5、运行时异常如果不处理会怎么样?应该怎么处理运行时异常?

6、写代码:给你 5000 万个 int,求出前 1000 个最大的数,有 2G 内存。(我刚开始以为 5000 万个 int 很多,还把 G 和 byte 的换算忘了,后来面试官指导才想起来。我的方法是维护一个 1000 的小根堆,然后遍历数组,总体下来时间复杂度是 O(nlg1000))

7、给你 n 个不重复的整数,随机找出 m 个不重复的整数,要求时间和空间复杂度都是 O(m)。(方法很简单,就是每次把取出来的数放到后面,只在前面的数组随机访问就可以了,时间复杂度是 O(m),空间复杂度是 O(1),不过我刚开始没有想到把选出来的放后面去)。

8、对于 SQL 慢查询的优化?(主要是从查询语句和数据库表设计两个方面来考虑,查询语句方面可以增加索引,增加查询筛选的限制条件;数据库表设计的时候可以拆分表,设计得更细粒度。但是后来才发现面试官想要的就是查询大量数据的慢查询问题的优化。)

9、用过哪些容器?(tomcat)对比过 Tomcat 与其他服务器的区别吗?比如 nginx?

10、用过动态代理吗?以后会经常用到的。

美团三面:

1、自我介绍,说说你项目中的数据流向(画结构框图)

2、看过什么书?

3、说说深入理解 JVM 中印象最深刻的章节(我说了 JVM 内存模型,垃圾回收和类加载);

补充:还问了堆和栈中存的是什么?static 修饰的遍历存在哪里?(方法区)

4、说说《Effective Java》中你印象最深的三条和你的理解

5、你觉得你哪一块只是最熟悉(我说了 Java 的基本数据结构)

6、那你说说 HashMap 的内部实现;

7、HashMap 是线程安全的吗?(不是,ConcurrentHashMap 是)

8、那 ConcurrentHashMap 内部是如何实现的?每个 segment 是个什么数据结构?(HashTable)

9、你的项目中用到哪些技术?(Spring)

10、说说你用了它的什么?(Spring IOC 用的最多)

11、Spring 的优点?Spring AOP 的原理?Spring 如何实现解耦合?

12、对链表了解吗?(我说是 List 吗)是,(了解 ArrayList 和 LinkedList),那你说说他们的区别?

13、会做链表两个结点的交换吗?(链表反转吗?)是的,你写代码实现把。

14、再写一个,给你一个链表和一个整数 k(k 大于等于 0,小于等于链表长度,链表长度未知),按 k 步长反转链表(比如 1->2->3->4->5->6->7,当 k=3 的时候结果是 3->2->1->6->5->4->7)

15、说说 mybatis 配置了 xml 过后是如何完成数据库操作的?

面试总结

1、具有三年以上 Java 开发经验或五年以上互联网开发背景

2、熟练使用 spring mvc 框架

3、掌握面向对象设计开发,熟悉常见设计模式

4、熟练使用 mysql 进行应用开发,熟悉数据库原理及常用性能优化技术

5、熟悉分布式,缓存,消息搜索等机制,有分布式系统开发经验,集群架构设计和使用者优先

6、有责任心,有想法,热爱技术,喜欢钻研

7、有较强的逻辑思维能力,善于分析,归纳,快速定位并解决问题

很多小问题都记不清了,这是我昨天下午回来就记录下来的,感觉自己也尽力了。

今天刚接到 HR 的通知,说已经我通过了面试,就这周会给我下正式的 offer,7 月份裸辞开始找工作的我也算圆满完成今年的秋招吧。最后在此祝各位准备找工作或者正在找工作的程序员们都能找到自己满意的工作。加油,好运迟早会来的。

虽然今年的寒冬很冷,但是还有一部分朋友去了 BATJ 等互联网公司面试,他们也给我传回来一些问的比较多的 Java 面试题,面的都是阿里 P6 岗,今天我把这些面试题一起分享给大家,希望对你们有所帮助。




希望能够帮忙转发下此文!

欢迎大家扫码来关注公众号博主,获取文章全部资料,此公众号会持续更新技术干货、不定期分享 Java 进阶面试宝典、Java 核心知识、架构书籍电子版


用户头像

周老师

关注

精通java热衷于分享java领域资料,感谢支持 2020.06.09 加入

还未添加个人简介

评论

发布
暂无评论
Java程序员裸辞两个月,面试阿里、美团,终拿美团offer