蚂蚁集团

收藏
互联网
10000人以上
D轮及以上
杭州/上海/北京/深圳/重庆
高校必争榜offer比较常胜榜校招高薪榜牛客指数榜
查看官网
上传简历
职位类型
全部
后端开发
前端开发
测试
人工智能/算法
产品
更多
最新
热门
不愿透露姓名的神秘牛友
09-05 11:17
1.上来是一个括号匹配,用的map+stack,写完估计还没过去五分钟,然后问我为什么用map,和if else 有什么区别,答:逻辑没有那么复杂,匹配比较简单。然后是这个题的一些拓展问题,也答上来了,但是费了一些时间。2.然后是有一个rand2函数,如何用这个函数写一个rand11,这个没什么思路,就说使用go语言完全随机的select解决,面试官问有没有其他方法,没想到。代码面试结束。3.之后是自我介绍,我是 密码科学与技术的(也是计算机大类的),不知道专业有没有影响4.输入网址后会发生什么,浏览器解析-查询cookie-dns解析-tcp链接-tls链接-发送http报文-服务器响应-返回http响应-浏览器渲染。我也答了中间步骤中一些重要的部分,比如dns用的什么,tcp三次握手,tls握手有什么重点,用了什么加密方式。5.讲一讲jwt,回答了一些加密方面的函数。面试官问有什么优势,答:理论上body可以存储无限的内容,相比对每个字段都加密,能省一些响应时间等等吧。知不知道其他的,答:知道OAwth2.0,但是不了解6.讲一讲doker,讲了一些自己对docker的使用,还有一些遇到的问题,面试官问如何解决问题,答:一般是先问ai是什么方面的,基本上都是镜像连不上,然后就是切换一些国内镜像比如一些高校的或者阿里云。7.docker要是遇到镜像比较大怎么办,答:因为镜像其实只需要可运行的部分,有可能在包镜像的时候把不需要的部分都装进去了。还有就是使用官方的镜像,举了个例子golang 1.21-alphine8,了解reids吗,了解。说一下高可用,说了主从,哨兵,cluster集群,都把我知道的内容全说了,包括什么全量复制,增量复制,客观下线,主管下线,选举主节点,谣言传播。9. cluster相比单节点有什么优势。答:举了个例子,如果有很多热key,cluster可以散列这些热key10,看我项目用过腾讯云cos是,说一下是干嘛的,就是存储桶,我是是用这个来模拟一个云盘。具体是怎么用的。答:通过官方提供的包来操作这个存储桶,包括新建文件夹,上传文件等等,具体还有就是使用文件名,桶名拼接url面试结束,反问1.有几轮面试2.什么时候能出面试结果3.筛选实习生时看重什么
查看10道真题和解析
点赞 评论 收藏
分享
08-17 13:09
东北大学 Java
1. 上来一道面试题:括号匹配,几分钟就k出来了然后给了第二问ex1.如果字符串只包含'(',')'括号,如何优化此算法内存占用。这也很简单,我用了数字正负号来表示然后第三问:ex2.ex1基础上,如果字符串长度改为10GB,允许你使用多线程,如何充分利用多线程性能我的思路是这样:多线程就好比分段,将10GB的字符串适当进行分段,拆分成多个段,每段用一个线程来跑,用num记录左括号和有括号相减的个数,用flag表示是否是有左边的右括号的情况但是这个思路明显是不行的后来问了打算法竞赛的朋友,他给这样一个思路:每一段用l和r来分别记录右边的左括号和左边的右括号,然后对多段得到的多个l和r进行遍历,用前一段的l和r与后一段的l和r进行一个运算OK啊,还得是专业2. 然后让我自我介绍,他在我介绍一半突然跑出去了,然后回来又甩给我一道算法题:现在有1-100的乱序数组,需要在里面找到一个给定的数,如何才能最优的解出来3. 说一说Redis有哪些应用--我答了有分布式锁、消息队列等4. 消息队列用什么数据结构--说的stream5. 介绍一下怎么用stream实现消息队列---巴拉了一大堆,不太记得了,说的磕磕绊绊的6. 现在输入一个网页地址,请说明这个请求从发出到响应经过了哪些链路7. 你在上一点实习中遇到了哪些令你印象深刻的困难--说了在做合同模板需求中遇到的困难,一个是和leader与产品组对需求的困难,另一个是实际开发过程中遇到的困难8. 这两个困难是怎么解决的9. 反问:这个效能平台研发实习生岗位是做什么的,更多涉及到底层的开发还是应用层面---应用层,主要是做东西方便给其他人使用10. 反问:能给建议不--不能11. 反问:几轮面试--两轮技术面一轮hr面两道算法,没多少八股,实习和项目啥也没问还是我硬讲的,牛油们这是kpi吗
查看10道真题和解析
点赞 评论 收藏
分享
小鹏面试 1. 一个线程中执行的任务如何确保顺序执行;2. binder无参调用如何知道client是谁;3.anr是如何分析的;中教云写一个api能够访问所有制定类型的文件中教云二面;TCP三次握手四次回收,线程死锁;实现O(1)复杂度的LRU最近最久未使用DNS如何解析域名访问一个网站的过程美团外卖一面1. 进程和线程的区别;2. 死锁的概念,如何预防死锁;3. onnewInent什么时候调用如果在 AndroidManifest.xml 中,将 Activity 的 launchMode 设置成了 “singleTop” 模式,或者在调用 startActivity(Intent) 时,设置了FLAG_ACTIVITY_SINGLE_TOP标识,那么,当该 Activity 再次被启动时,如果它依然存在于Activity栈中,并且刚好处于栈的最顶层时,那么它将不会被重新创建,而是直接使用原来的实例,此时,onNewIntent(Intent)将会被调用,后续生命周期中的其它方法,就可以使用 onNewIntent(Intent)传递过来的新的Intent参数了。也就是说,调用顺序如下:onNewIntent() -> onRestart() -> onStart() -> onResume()activity栈唯一(singleTask)原则下,通过Intent启动一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再创建一个新的实例,不会调用onCreate方法,而是调用onNewIntent方法4. RecyclerView 如何区分header和footer5. 跨进程通信的方式有哪些6.hashmap的底层原理,不安全的原因,如何确保安全支付宝一面1.http和https区别2.安卓的安全机制有哪些;3.安卓的art虚拟机;4.安卓的启动流程有哪几个阶段;5.手机按下电源键启动内核;6.Linux启动模型;7.网络如何确保安全,如何确保秘钥的正确性;8.网络层次的七层结构;9.Socket位于哪一层;10.内存溢出;11.热修复方案;
查看25道真题和解析
点赞 评论 收藏
分享
总结:面了一个小时,一道手撕,几个八股,几道业务,还有场景行测题。手撕环节1.实现rm -rf path命令。已知3个方法 1.file.isFile()判断是否是文件 2.file.delete()删除文件或目录 3.listFiles()返回这个目录下的所有文件或目录import java.io.File;import java.util.List;public class FileDeleter {// 方法1: 判断是否是文件public boolean isFile(String path) {return new File(path).isFile();}// 方法2: 删除文件或目录public void delete(String path) {File file = new File(path);if (file.isDirectory()) {// 如果是目录,递归删除其内容deleteDirectory(file);} else {// 如果是文件,直接删除file.delete();}}// 方法3: 返回目录下的所有文件和目录public List<String> listFiles(String path) {File directory = new File(path);File[] files = directory.listFiles();return Arrays.stream(files).map(File::getAbsolutePath).collect(Collectors.toList());}// 实现rm -rf功能public void rmrf(String path) {if (isFile(path)) {// 如果是文件,直接删除delete(path);} else {// 如果是目录,递归删除deleteDirectory(new File(path));}}// 递归删除目录及其内容private void deleteDirectory(File directory) {// 获取目录下所有文件和子目录File[] files = directory.listFiles();if (files != null) {for (File file : files) {if (file.isDirectory()) {// 递归删除子目录deleteDirectory(file);} else {// 删除文件file.delete();}}}// 删除空目录directory.delete();}}2.追问:针对这个功能,请设计测试用例1.判断命令行是否为空2.判断关键字是否正确3.判断path是否为空4.判断path是否合法(无效,超过长度)5.判断path是绝对路径还是相对路径6.判断是否具有删除权限7.判断删除的是文件还是路径8.判断删除的文件类型(二进制,普通)场景题1.找出一个10w个元素的数组中,最大的1000个数使用最小堆,只保留最大的1000个数(原来思路是对整个数组排序,排成最大堆,这样的方案空间占用很多)2.请你列出支付宝的转账功能的测试点(系统层级)八股部分1.SpringBoot的注解1.1.启动类注解●@SpringBootApplication 组合注解,包含以下三个注解:●@SpringBootConfiguration:标记为配置类●@EnableAutoConfiguration:启用自动配置(扫描META-INF 的spring.factories,如果有对应的组件,就加载对应的Bean文件)●@ComponentScan:组件扫描1.2.条件注解●@ConditionalOnClass 当类路径下有指定类时生效●@ConditionalOnMissingBean 当容器中没有指定Bean时生效●@ConditionalOnProperty 当配置属性满足条件时生效2.Spring如何管理依赖?Spring Boot 通过其独特的依赖管理机制,极大地简化了项目依赖配置,解决了传统Spring项目中常见的依赖冲突和版本管理问题。父项目继承(spring-boot-starter-parent)Spring Boot 提供了starter-parent作为推荐的基础父POM:<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.0</version> <!-- 使用最新版本 --></parent>优势 :●自动管理依赖版本(无需指定版本号)●默认的Maven配置(资源过滤、插件配置等)●合理的默认配置(Java版本、编码等)3.SpringBoot依赖注入如何使用@Autowired,@Resource,@Injected4.三种注入的方式了解吗常用方式:a. 构造器注入(Constructor Injection) - 官方推荐: 通过类的构造方法注入依赖项。i.优点:依赖项不可变(final),确保在使用对象之前所有依赖都已准备好,完全初始化后的对象是线程安全的(如果依赖项也是线程安全的),强制要求依赖项,便于测试(测试时可以直接传入mock对象)。b. Setter注入(Setter Injection): 通过类的setter方法注入依赖项。i.优点:可选依赖项(可以没有Setter调用,依赖可能为null),允许在对象创建后重新配置依赖(但通常不建议)。c. 字段注入(Field Injection) - 尽量避免: 直接在字段上使用@Autowired注解。i. 虽然使用简单,但通常不推荐,原因:破坏了封装性(字段变成public或通过反射可访问),难测试(需要反射或启动完整Spring上下文才能设置依赖),可能使类的依赖关系不明确(没有构造器或setter明确声明依赖),不利于声明final字段。5.Spring如何管理事务?使用AOP,使用try catchtry:开始事务执行方法提交事务catch:回滚事务项目提问1.你的项目输入输出是什么?2.有应用场景嘛?3.有应用大模型吗?4.除了实验室课题,你还做过什么项目?5.这两个学校项目占用了你多少时间?课余时间一般在做什么?(觉得我没有额外学习编程呜呜行测部分1.你遇到问题会怎么解决?2.假如领导交给你一个不能实现,或者你觉得没必要实现的任务,你会怎么做?3.你人生中最大的困难是什么?4.你选择测试开发岗位的原因是什么?对未来的职业规划是什么?反问环节1.是否可以了解一下目前测试业务范围?测试业务范围主要是负责饿了么APP点外卖、淘宝闪购以及用户能看到的所有页面和用户使用场景的测试工作。2.对于实习生来说,可能会负责哪些工作内容?实习生负责的工作内容取决于所在部门,可能涉及客户端测试或底层算法层的测试,具体要求根据实习生的分配部门和能力所在进行安排。3.平时的工作节奏是怎样的?正常上班时间为早上九点半,下班时间为下午六点半,但实际工作时间可以根据项目进度自行调整,周末通常为双休日。工作中会有临时高强度的情况,但并非常态。4.工作地点是上海吗?上海和杭州都有,建议实习地点和工作地点一致。
烤点老白薯:非典型测开八股 好文章 Mark
查看18道真题和解析
点赞 评论 收藏
分享
分享我的面试经验
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客网在线编程
牛客网题解
牛客企业服务