明略集团面经
明略集团是一个很有发展前景的人工智能公司,是我的秋招首面。其面试分为技术面(一个半小时),hr面(20分钟左右)一共两面。尽管时间问的比较久,但是整体感觉面试官很谦和,很有耐心。
技术面:
(1)自我介绍。
说明自己的研究方向和求职意向。
(2)聊项目。
面试官听我说是研究区块链技术的,就很有兴趣的和我提出了一些他对于区块链的认识和困惑,还给了我差不多半小时聊我写的论文和做的项目,还特别真诚的和我说他听懂了,感觉这一点真的是很感人(一个做人工智能的公司搭理你一个找开发的,还给你时间听你聊一聊理想)。
然后聊了另一个我做的一个仿猫眼平台的微服务项目:
1.亮点是什么:对订单业务的异步控制和请求限流
2.为什么要使用dubbo框架?
因为dubbo框架里的dubbo协议是一种单连接,长连接的协议。特别适合处理单次请求数据量小,但是请求个数远远多于服务器的情况。
延伸问题:
有没有看过dubbo底层,
springcloud有没有了解,他们都是做微服务的有什么区别,
spring AOP有没有了解(面向切面编程,底层实现使用动态代理),
动态代理还在哪用过?
框架底层源码读过多少?
3.什么是服务的熔断降级?
4.zookeeper的工作原理
(3)基础知识
1.hashmap的实现原理,hashmap与hashtable的区别?与currenthashmap的区别?
2.JVM的内存模型(堆,栈,方法区,程序计数器)
3.垃圾回收机制相关
4.泛型的好处是什么?
5.IO流这一块了解吗?NIO说一下,Netty知道多少?
6.并发和多线程
(4)手写数据结构代码(时间关系只让讲了一下思路)
随意给定一颗二叉树,二叉树上的每一个节点都标注了其权值。求最小权值叶子节点与最大权值叶子节点的路径长度差是多少。
我个人当初是为了找见最小的叶子节点和最大的叶子节点,找了辅助栈来存储每一条从根到叶子的路径,然后找见最大值和最小值。利用栈容量计算其差值。
面试官后来说可以退化为求两个节点的公共子节点问题。
之后面试官给了很多以后的职业规划建议后,让我进入了hr面环节。
HR面(几个关键问题)
1.影响你最终去哪家offer的前三个因素是什么?
我自己讲的是 发展平台,城市,公司文化和我的价值观的匹配度。