CRZZX
人工智能
·2024-03-21
校招-天津桔子互联网科技有限公司-小公司-15~20k-技术面试-二面(线上) 用时:45分钟 问的内容: 1. 说说自己项目花时间比较多的功能点? 主要回答了oj项目中判题模块、代码沙箱模块各自的设计和联动,回答的还可以,思路比较清晰,内容比较详实。 2. 为什么选择微服务,为什么要把oj项目从单体改造成微服务?(*) 这个答得不是很好,仍然是微服务的理解问题。当时自己的回答是从两方面说的:1是出于学习和提升挑战的目的;2是微服务多模块可以更好保证系统稳定性,举例是:其中一个模块挂了其他模块依旧可用,而单体服务不太行。但感觉回答的原因还是有点单薄,终究是自己对微服务的理解还不够深入,尤其是微服务的好处。 3. 微服务分布式架构下,如何保证在处理某些业务多个步骤时的调用有序性?(*) 这个问题问的我一开始问的有点懵,因为在写OJ项目时并没有遇到这样的场景,当时OJ微服务调用,判题业务只有两个步骤,基本微服务模块的调用并没有那么多,所以懵了几秒。不过最近刚刚看过rabbitmq消息队列的八股,其中有个点时如何保证消息的有序性,于是我就借鉴了一下思路,说:1可以按顺序将消息划分对应顺序的队列,然后消费者按顺序获取;2消费者统一获取,在执行代码逻辑前确定顺序再按顺序执行,就把这个和面试官说了,没想到蒙的还有一定道理,他说我的思路是有一定可行性的,然后再问我更具体的实现细节,我就如实回答不太清楚了,解释自己确实没有遇到过场景,还需具体问题具体分析,所幸面试官笑着说表示理解,然后提示说redis也是一种思路,回头建议我可以再好好想想。不过,自己这块的知识积累确实欠缺,虽然临场反应还算没宕机,但还需再查阅资料补充一下,补充好标答到自己的知识库。 4. 如何评测一个哈希函数好与坏? 起因是面试官问我 HashMap 的底层数据结构,我就从jdk1.7之前的数组 链表说起,然后解析了哈希表这个数据结构的组成部分:哈希函数、冲突解决策略(拉链法、线性探测法等)。说的很详细,因为之前数据结构有看过这一块,然后他见我回答的很流畅就不让我继续说jdk1.7之后加入红黑树的结构了,就问了我这个如何评测哈希函数设计的好与坏。我的回答从两个角度分析:1哈希函数数学层面的复杂度分析(理论角度);2小批量数据试验效果的好坏(实践角度)。面试官对我的回答表示认可,然后从数据的角度提出了另一个观点:数据的规律性可以启示我们个性化设计哈希函数满足这一块数据的使用,但是通用性的话,另当别论。自己也受了一些启发。 5. 平时如何学习新知识? 这是最后问的问题。我的回答是:1从项目中发现问题,自主调研方案,选取方案技术后,在GitHub等平台找demo练手,结合官方文档实操,同时查阅技术文章做理论知识的补充。2关注知名技术团队和程序员,广泛涉猎新知识,并学以致用。 6. 反问 a. 公司业务?做广告数据流量推广的,会结合ai,然后公司属于初创公司,有ai和java两个部门协调配合工作。 b. 新人培养机制?一两周“新手保护期”。 7. 总结 总体回答的还可以,最后面试官对我的评价也是比较符合公司招人的要求,说希望有机会再见面。 没有回答好的问题: 1. 为什么选择微服务,为什么要把oj项目从单体改造成微服务? 2. 微服务分布式架构下,如何保证在处理某些业务多个步骤时的调用有序性? #面试#
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP