阿里大文娱一面

流程    4-3 投递    4-9 笔试    4-16 一面

面经
1.描述项目
2.什么是事务,我们为什么要用事务
3.项目中怎么使用事务,实操(怀疑想让我讲分布式事务)
4.spring声明式事务默认的传播机制
5.不定义rollback会怎么样
6.MySQL的锁有了解
7.什么是MySQL的行级锁
8.项目中有用过行级锁吗?业务有用过吗
9.所有的update开启事务都会加锁吗?
10.除了redis还有没有用过分布式的缓存组件
11.redis的缓存过期策略
12.redis的分布式锁有用过
13.什么场景用过分布式锁
14.分布式调度框架了解过哪些
15.spring的定时任务调度支持分布式吗?
16.部署了十个实例,定时任务如何执行呢?
17.只想一台实例执行定时任务
18.管理后台的管理员登录态是怎么保持的
19.token存在cookie里面吗
全部评论
感觉除了MySQL Redis 都不是很熟悉啊
4 回复 分享
发布于 04-16 23:33 北京
有后续嘛
点赞 回复 分享
发布于 05-06 15:15 河南
ez
点赞 回复 分享
发布于 04-28 19:41 湖北
有后续消息吗,佬
点赞 回复 分享
发布于 04-26 15:45 陕西
这个是实习岗嘛
点赞 回复 分享
发布于 04-19 02:17 广东
佬面的是内容分发与渠道增长平台嘛?
点赞 回复 分享
发布于 04-17 01:22 北京
什么bg,佬
点赞 回复 分享
发布于 04-16 23:27 江苏

相关推荐

06-10 18:11
已编辑
门头沟学院 Java
oc但是听说是开发低代码第二天准备拒但是发现人家先给我毁了oc。电话面试,一面无手撕,一共20min左右1,问项目大概。2,http和https有什么区别?3,zookeeper有用过吗?4,你讲一下你项目里面的这个怎么实现用redis来实现消息队列功能的?为什么用redis而不是其他专门的mq中间件?5,消息队列的模型?消息队列怎么保证任务有序性?订阅模式怎么实现任务的有序性?如果我就是要订阅模式整体全局有序性我应该怎么实现?分布式情况下这个功能要怎么设计?6,后台调度怎么设计怎么实现?回调函数?7,你的这个计数功能怎么实现把数据转化成excel的?怎么数据填充以及怎么和算法端约定数据的?8,讲一下延迟队列?9,你设计的这个消息队列怎么实现定时发送任务和处理任务?10,用过kafka吗?可能漏了一些记不太全了。基本都是我在讲。面试官就问问题然后我确认意思之后直接都是我在讲,我讲的时候扩展了很多我害怕面试官觉得我浪费时间。反问:1,项目做什么的?2,为了更好的适应工作,你给我的建议是接下来应该怎么改进学习?3,你对于业务的本质是怎么看的?比方说你接了一个需求,你是怎么根据项目业务来设计的?(这一点和面试官的理念不谋而合。他还夸我很有业务sence。)4,你更看重候选人的什么特质?本来觉得挺好把其他公司电信腾讯其他的面试拒了就专心入职。但是后面听很多人说除了北京都是低代码。然后第二天准备拒绝发现人家先一步告诉我没hc了让我等到七月份再联系我。破防了。
点赞 评论 收藏
分享
总结:面了一个小时,一道手撕,几个八股,几道业务,还有场景行测题。手撕环节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道真题和解析
点赞 评论 收藏
分享
评论
3
14
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务