蚂蚁集团

收藏
互联网
10000人以上
D轮及以上
杭州/上海/北京/深圳/重庆
高校必争榜offer比较常胜榜校招高薪榜牛客指数榜

41

在招职位

1109

面试经验

15

真题试卷

查看官网
上传简历
此刻你想和大家分享什么
职位类型
全部
后端开发
前端开发
测试
人工智能/算法
产品
管理
交互/设计
最新
热门
总结:面了一个小时,一道手撕,几个八股,几道业务,还有场景行测题。手撕环节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.工作地点是上海吗?上海和杭州都有,建议实习地点和工作地点一致。
查看18道真题和解析
点赞 评论 收藏
分享
06-02 19:30
已编辑
北京理工大学 C++
点赞 评论 收藏
分享
距离第一次面试刚刚好过去一个月,总算是oc了,后面也不打算再找了,所以简单做个总结bg双九科班简历牛客论坛+黑马点评,有个挑战杯大模型相关比赛决赛一等奖 无实习经历,LeetCode除hot100之外有额外刷一些,大概200左右,八股一般,主要背了redis相关大概4月初开始投,虽然bg让我有不少面试机会,但大多都是一面挂,只有阿里智能信息顺利oc,鹅的复活赛进了一次二面。总结失败经验:没有实习经验、项目烂大街加上最开始确实没有完全吃透,基本一深入问就g以下记录一下时间线:美团 4.23 一面挂阿里国际 4.29 一面挂腾讯 5.8 一面挂阿里云 5.9 一面挂腾讯复活赛一番战 5.13 一面 5.20二面挂淘天 5.14 一面挂(阿里妈妈的压迫感太强了)腾讯音乐 5.14 一面挂阿里智能信息 5.15一面 5.20二面 5.23HR面 HR面后三小时oc其实还投了不少,饿了么笔试没后续,蚂蚁笔试没后续,OPPO笔试挂,虾皮笔试挂,阿里控股、京东还在池子里,很早就投的顺丰发了个面试时间意向邮件后无后续以下是面经:美团、阿里国际、阿里智能信息已单独发腾讯一面:讲讲session和cookie,了不了解单点登录csrf攻击布隆过滤器讲讲cas讲讲redis里的数据结构,跳表有了解吗热帖排行功能展开讲讲讲讲你项目里的分布式锁acid、隔离级别,mysql默认是哪个级别,为什么ioc和aop手撕:连续子数组的最大和其实这次面试体验还挺好,就是单点登录问题面试官前面暗示了很多次,最后直截了当问了,但我这块当时确实没准备到淘天一面:除了maven还有什么管理第三方包;如何处理maven依赖冲突AC自动机了解吗布隆过滤器threadlocal,如何跨线程传递值mysql的锁了解吗,什么情况下会产生死锁商品数量多时如何考虑分库分表redisson自动续锁怎么解决死锁问题get和post的区别;为什么get中带url是不安全的循环依赖是什么,spring中如何解决,适用于什么情况ioc、aop讲讲为什么要做这两个项目csrf手撕快排,讲原理被拷打最狠的一集,阿里妈妈不愧是阿里妈妈,是我完全高攀不起了腾讯复活赛一番战一面:static的作用final和finally的区别==和equals的区别为什么有了equals还需要hashcode为什么重写 equals() 时必须重写 hashCode() 方法?ioc和aopredis有哪些部署架构讲讲redisson对分布式锁的优化,什么情况下只使用单体redis手撕:删除有序链表中的重复值都是很基础的八股
点赞 评论 收藏
分享
05-23 01:07
门头沟学院 Java
主要是针对黑马点评项目,欢迎uu解答讨论,急需学习  1. 讲一下登录注册过程2. 你是怎么将验证码发送到用户手机上的?3. 你了解过什么公司有这种发送验证码的业务的?4. 如果设计用户密码登录,密码应该怎么传输?(回答加密之后传输,唯一知道的:hash+加盐,https传输)5. 如果设计一种用户通过密码注册的方式,前端接口需要收集什么数据,怎么传到后端?讲一下这个流程6. 按照你说的在前端进行拦截再对密码加密,加密后的内容发送给后端的话,每次加盐的这个盐不一样,传输的同一用户的加密密码还能是一样的吗?7. token是怎么传递给前端的?(回答写在响应体里的,后来查了下好像是写在响应头里的)那token在前端是存储在哪里的?8. 如果token泄露了,攻击者利用token向后端发送请求怎么办?(只能想到https加密,再就是通过ip进行查验)9. http和https的区别?10. 讲一下https里非对称加密和对称加密11. 非对称加密的算法了解过吗?(只知道hash和散列,还不知道是对称加密还是非对称加密的)12. hashmap的底层?什么时候用红黑树,什么时候用链表?为什么是8的时候?13. concurrenthashmap的底层?14. 为什么不是线程安全的,头插法和尾插法的区别15. 如果你现在要插入7个数,你怎么设计hashmap的容量?16. 如果用hashmap,怎么设计让他线程安全?(对put方法加锁,还说了volatile,后面他说基础类型和引用类型,你在这里对hashmap加volatile有用吗)17. 第一个项目讲一下,你是调用的一个视频处理的接口吗?还是在上面训练过18. 拦截器拦截的是什么?讲一下拦截的过程?中途打断,那你的threadlocal是从哪里获取数据的?19. 讲一下缓存更新策略,实际用的是什么?(修改数据库后删除缓存)20. 如果你要将商户信息存进redis里,你怎么选取哪一部分商户?(我回答说例如对评分前十的商户,会将这些商户信息存到redis里方便页面显示,然后问那你是在什么时机选取的评分前十呢?这些商户信息具体是怎么存到redis里的)
点赞 评论 收藏
分享
05-21 20:25
已编辑
河南大学 Java
全程40分钟手撕二选一:1、给定一个字符串,找出包含给定字符集的最小窗口,如:字符串:"it's tuesday",字符集:"std",最小窗口就是"tuesd"2、奇偶线程交替执行,消费者线程模式我选了第一题,滑动窗口1、项目有多少行代码,项目带来了什么样的成长,遇到了什么问题吗,技术上遇到了什么难题;项目用多少压力去测试的,有没有性能热点;2、项目中线程池用在哪里,怎么去定线程池的参数,多少个线程之类;设置的线程数对其他模块有没有什么影响3、对cpu饱和有了解吗4、项目中有没有用到反射机制,用到了哪些设计模式;对常见的设计模式有用过吗,有了解吗5、多线程并发的逻辑问题如何解决6、分布式锁的优点和缺点7、linux熟不熟,开发过shell脚本吗,主要是用shell脚本做了什么;涉不涉及到批量处理文件,截取字段8、linux查性能瓶颈的命令,查内存的命令,查磁盘的繁忙程度的命令9、mysql窗口函数有了解吗10、优化数据库查询性能11、SQL题:学生表,属性有id、name、yuwen_grade、math_grade、english_grade、all_grade(总成绩)。取总成绩第三名的 学生id(可能会有并列的情况,并列的情况,所有第三名都要查出来)  。  如果把all_grade去掉,查总成绩第三的学生。12、DDL了解哪些语句,列排序,列类型变更有了解吗,是OnlineDDL 还是 open DDL(这个地方没太听清楚这两个英文单词是什么,没听说过这个概念)13、有系统性学过python感觉被拷打了,回答的有点糟糕5.12面的,到现在还没有消息,应该是挂了
蚂蚁集团一面251人在聊 查看20道真题和解析
点赞 评论 收藏
分享
05-15 10:19
已编辑
南京邮电大学 C++
机缘巧合,本周周一12号晚上参加蚂蚁的面试,部门是支付宝事业群面试时间:大概1h30min,两道代码题面试官人不错,不会的问题会引导你回答简单的自我介绍跟项目介绍开始大面积问八股,看楼主是C++选手,首先从C++八股入手(问的太多了,楼主只挑印象深刻一点的介绍)1,指针与引用的区别2,lambda与funtion的区别3,一个空类创建的时候,默认会创建什么成员函数4,线程池的构建,核心线程如何维持,线程池的扩容5,智能指针有哪些,如何实现6,union是什么,union里面可以构建一个class吗7,struct与class的区别是什么,什么时候用哪个8,右值如何理解,你怎么用的9,c或cpp的程序构建过程(这里楼主说链接阶段容易出问题,追问为什么)…………然后开始借着项目将八股辗转各个领域1,protobuf的底层了解过吗,为什么效率高2,HTTPS是如何实现安全的,说一下具体步骤3,HTTP3与HTTP2的本质区别4,QUIC协议5,进程、线程与协程6,sql的WAL了解吗(这个楼主真不了解)…………然后就开始做两道题,一道是检查程序错误,一道是给你一个消息格式,以及编码解码的方法框架,完善编码解码,这两道题纯C语言,第一道楼主只找出3、4个错误,其实还有一些重要的没有找到,面试官说还得再练。第二题,完成度大概百分之七十,跟面试官说了思路,也算认可了反问1,一共几面,答:3面2,顺利的话,什么时候能收到2面通知,答:一周左右3,对楼主的面试点评,答:基础还行,编码有待加强总结,八股盛宴+两道有一点难度的题想问一下牛友,kpi面的概率大吗,蚂蚁是不是吃学历比较严重
查看16道真题和解析
点赞 评论 收藏
分享
05-12 21:00
武汉大学 C++
疑似被捞后的面试,招聘系统上也没有流程。面试官很会问,说会先从广度问起,然后每个点深挖看技术深度,会问到不会为止1. 自我介绍2. 两个项目详细介绍3. 是否了解springboot框架(回答了bean,springcloud等方面)4. 如果没有spring boot框架,如何做java开发(被问懵了,我说还是用mvc架构等方法构建层次)5. 介绍mvc架构6. 然后面试官从mvc三个部分开始分别问问题,先是model,就开始问数据库相关的问题。先问了mysql的各种引擎与区别7. 然后从我回答的InnoDB和myisam缓冲区管理方式的区别,问缓冲区中不止存索引页还存数据页的作用是什么8. 如果一个有索引的列很大,不能全部存入内存,如何通过索引进行查找(这个确实不会)9. select a from t where b = x,列b上有索引,索引的查找过程(我回答说要分主键索引和二级索引来分别考虑)10. 与上题同样的sql语句,假如b上不是主键索引,如何避免回表11. 然后开始问从mvc中controller来问,开始问计网。问http的报文结构12. 输入url整体过程13. 网络分层层次14. 网络层和数据链路层相关协议15. 通过ip地址找到对应服务器后,如何找到对应的应用程序(进程)(回答用端口号)16. 平时的url解析过程中如何找到对应端口号(没回答上来)17. 项目中用了通义千问api,如何调用18. 用大模型返回结果是一次性返回还是?(回答用了流式输出)19. 流式输出具体方式(忘记了)20. 问了缓存管理的项目,问如何进行的缓存优化等,拷打项目21. 一道简单dp算法题,设计测试用例22. 看我用到了vector,问vector和数组的区别(光记java八股了,没记cpp)23. 反问
查看22道真题和解析
点赞 评论 收藏
分享
查看13道真题和解析 面试问题记录 牛客创作赏金赛
点赞 评论 收藏
分享
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客网在线编程
牛客网题解
牛客企业服务