我才不会刷题呢 level
获赞
63
粉丝
18
关注
10
看过 TA
507
南京航空航天大学
2026
Java
IP属地:浙江
勇闯饿了么版
私信
关注
06-18 21:31
已编辑
南京航空航天大学 Java
总结:一共半小时,比想象中要长,问了比较多场景题, 面试风格和技术面完全不同。提问环节1.你能否先做一个自我介绍,开始今天的面试?2.你的求职意向中,是否考虑除了网络安全方向外,还会考虑java后端、测试开发等其他岗位?3.问:你是否已经确定要去做测试开发方向的工作,还是同步考虑后端岗位?答:我认为都可以考虑,现在还没有限制得很死,还在探索阶段。4.问:你在找实习时,除了测开岗位外,是否也投递了一些后端岗位?答:其实都有在投递,不会限制得很死,前端后端都会考虑。5.问:你目前是否拿到较为满意的offer,为什么可能会优先考虑我们公司?答:确还有一些offer在流程中,我对贵公司的价值观比较认同,所以可能会优先考虑。6.问:能否分享一个你在硕士期间做的相对满意、有成就感或具有挑战性的项目,包括项目背景、目的、你在其中的工作内容以及满意之处?7.问:在项目推进过程中,有哪些比较满意的点,如果重新来过,有哪些层面可以做得更好?8.问:你是否有实习经历,在之前的实习岗位是做什么的?9.问:你在实习期间实习了多久?10.问:在企业实习(如实习神经学、大数据和网络安全等岗位)与学校跟随导师做实验室项目,两者之间有什么核心差异?答:核心差异在于研究生阶段的研究工作更多是探索性的工作,在前人基础上挖掘新的领域;而在企业实习则是针对已有的岗位和明确的工作职责,主要任务是掌握当前的工作岗位,不需要过多的探索性工作。11.问:在之前实习的过程中,遇到的最大挑战是什么?答:最大的挑战是适应体制内工作,学会半文半事,与不同人打交道,包括参加会议并做会议纪要等文书工作。12.问:在实习期间,你在做人和做事能力上有哪些具体的提升?13.问:你是否有设想过如果来到互联网公司实习后可能会遇到哪些困难,并且是否决心从事互联网行业?答:认为人生是探索,虽然了解到互联网行业的差异,但尚未深入了解,打算通过实习期间的探索,尝试进入互联网行业作为未来可能的第一份工作。14.问:如果我给你这样一个暑期实习offer,你过来之后,在上手和工作推进过程中,你觉得会遇到哪些层面的挑战或困难?答:我觉得我的岗位是测试开发,主要挑战包括编写和执行测试文档,以及进行自动化测试和基础平台的研发。这些工作都是我之前没有接触过的,需要在短期内熟悉公司的流程和技术要求,例如学习自动化测试所需的Python语言或基础平台开发能力,以及熟悉测试文档的结构、编写到执行的全流程和缺陷生命周期管理。15.问:做好这个暑期实习岗位的核心能力层面有哪些?答:核心能力层面首先是编码能力,因为进行技术平台开发时编码是必需的。其次,沟通能力也很重要,需要与产品经理、开发人员进行有效沟通。所以提升编码能力和沟通能力都是必要的。16.问:你觉得我们公司或实习岗位对你来说比较好的地方主要在哪些层面?答:我觉得主要优势在于公司的定位,作为阿里系公司,拥有足够大的平台,这对于个人能力是一种很好的背书。此外,工作地点在杭州或上海,这两个地方我都喜欢,并且对测试开发相关工作内容较为熟悉,有助于能力增长。17.问:你能否客观分析一下,觉得自己与其他申请者相比,在哪些方面具有优势和劣势?18.问:你是否可以接受上海和杭州这两个地点作为实习地点?19.问:实习时间上,你最快什么时候能开始,最晚可以实习到什么时候?反问环节1.问:公司主业是否偏向某一地?答:公司没有所谓的主业或总部概念,外卖业务上上海和杭州是双核心定位,而从阿里整体来看,杭州是总部所在地。2.问:上海这边的团队主要负责哪一块业务?答:上海团队主要负责首页APP交易到购物车、下单页的链路测试,同时负责创新型业务如拼团、秒杀、卡券类业务闭环开发,以及营销工具玩法(超级吃货卡、红包、吃货豆等)的设计与测试。3.问:是否可以了解一下工作节奏?答:实习期间,公司对实习生的工作量期望并不高,更关注实习生主动学习能力和对业务的理解深度。正常情况下,正式员工晚上一般在8点至9点半之间下班,但若项目上线节奏紧张时,可能会有所加班。
查看19道真题和解析
0 点赞 评论 收藏
分享
总结:面了一个小时,一道手撕,几个八股,几道业务,还有场景行测题。手撕环节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道真题和解析
0 点赞 评论 收藏
分享
总结:面了十几分钟,问的八股我准备的不是很好,有点尴尬通用问题1.有了解我们宁银消金吗2.你父母的职业3.你未来的打算4.你是网络安全专业,以后会从事这个方向吗5.问了去单位实习的内容6.你gap一年是在备考吗7.你有做过后端开发项目吗,为什么要来后端开发呢八股1.Spring前后端的参数传递方式有哪些一共有五种方式。第一种是路径传参,可以直接通过url传参@GETMapping("/users/{id})public User getUser(PathVaraiable("id") Long userId)将id绑定到userId上用途:标识唯一资源(用户ID,订单号等等)第二种是查询参数QueryParameters通过URL的?key=value传入,用于筛选数据可以传递附加条件(筛选,排序,分页等等)public String getUsers(RequestParam("name") String name,RequestParam (age) int age)第三种是请求体传参(@RequestBody)@RequestBody可以将JSON格式绑定到JSON对象上第四种是表单参数(Form Parameters)使用Request Param支持url编码和form-data(可以文件上传)主要用于POST/PUT请求会隐藏在请求体中,是不可见的第五种是请求头参数,通过HTTP请求传递信息(如认证令牌)实现方式:使用@RequestHeader注解来绑定信息)@GetMapping("/auth")public String checkAuth(@RequestHeader("Authorization") String token) {// 验证token}2.抽象类和抽象接口有了解吗抽象类定义 多个相关类有共同属性和部分共享逻辑,就可以抽象出一个抽象类抽象接口定义 声明一组无关类需实现的能力(例如Comparable定义比较规则)它可以实现多继承效果面试官​:抽象类和接口的区别是什么?​回答​:​核心目的不同​:抽象类为相关类提供通用模板(is-a),接口定义行为规范(can-do)。​代码灵活性​:抽象类支持部分方法实现,接口通过默认方法向后兼容。​继承机制​:抽象类单继承,接口多实现,适用不同扩展需求。​选择依据​:用抽象类:多个类共享状态和部分行为(如动物类族)。用接口:定义跨类能力(如序列化、比较)或实现多态3.面向对象的五大原则面向对象的五大设计原则(SOLID)是构建可维护、可扩展软件的核心准则,以下是具体解析及实践要点:📌 一、单一职责原则(SRP, Single Responsibility Principle)核心思想 :一个类只应有一个引起变化的原因。● 作用 :避免职责扩散导致的高耦合。例如,职员类若同时处理工程师、销售、经理的职责,会导致方法内充斥条件判断,任何需求变更都可能影响整体。● 实践建议 :按功能拆分模块。如图片加载框架中,将图片加载与缓存分离为两个独立类。🔄 二、开放封闭原则(OCP, Open-Closed Principle)核心思想 :对扩展开放,对修改封闭。● 作用 :通过抽象隔离变化。例如银行业务中,通过IBankProcess接口定义流程,新增基金业务只需扩展FundProcess类,无需修改原有代码。● 实现方式 : 使用策略模式(Strategy)或模板方法模式(Template Method)。○依赖抽象接口而非具体实现。🔁 三、里氏替换原则(LSP, Liskov Substitution Principle)核心思想 :子类必须能替换父类且不影响程序正确性。● 作用 :确保继承关系的合理性。反例:正方形继承长方形时,若修改setWidth()会同时改变高度,破坏行为一致性。● 关键点 : 子类方法的前置条件不能比父类更严格,后置条件不能更宽松。○避免重写父类非抽象方法。🧩 四、接口隔离原则(ISP, Interface Segregation Principle)核心思想 :客户端不应依赖其不需要的接口。● 作用 :避免“臃肿接口”。例如电商订单系统,为门户(查询)、外部系统(插入)、后台(全功能)分别定义专用接口。● 实践建议 : 按角色拆分接口,如IOrderForPortal仅含getOrder()。○避免强制实现无关方法,减少依赖污染。⬇️ 五、依赖倒置原则(DIP, Dependency Inversion Principle)核心思想 :1.高层模块不依赖低层模块,二者依赖抽象;2.抽象不依赖细节,细节依赖抽象。● 作用 :解耦模块关系。如图片框架中,业务逻辑依赖ImageCache抽象接口,而非具体的内存或本地缓存实现类。● 实现方式 : 依赖注入(DI)或工厂模式。
0 点赞 评论 收藏
分享
总结:面了一个小时,前半段问项目,后半段问八股,两道编程题。面试官很热情,介绍了半天他们的业务,像是在汇报哈哈哈哈。八股部分1.单例模式有用过吗,怎么实现的(不知道怎么实现)回答:用得比较多的地方是数据库连接池,全局只能有一个连接池,并且提供全局访问。以下是搜索结果:有五种经典的实现方式。第一种是饿汉式(线程安全)他在类加载的时候就立即初始化实例,使用场景是实例占用资源少,且频繁使用。第二种是懒汉式(非线程安全)延迟初始化,在使用的时候,如果没有这个实例才初始化,在多线程环境下会创建多个实例。第三种是线程安全懒汉式,通过synchronized保证线程安全,但性能差。(因为锁的粒度很粗)不建议高频调用。第四种是双重检查锁(DCL)。特点是延迟初始化,并且线程安全第五种是静态内部类(推荐)。特点是利用类加载机制保证线程安全,延迟初始化且无锁。2.JVM运行时数据区回答:有堆,栈,方法区。堆存储对象实例,数组;栈存储线程的调用栈帧;方法去存储对象信息和方法信息。3.事务ACID了解吗回答:原子性,持久性,一致性,隔离性。1.原子性由undolog实现2.隔离性由锁或者MVCC实现(吟唱一下隔离性的四个级别)3.持久性由redolog实现4.一致性由前三者一起保证实现。场景业务题1.在一个发优惠券的场景,我有一个10w行的用户数据表,要取出里面的用户信息放入模型中,返回优惠券的结果,(模拟用户领券的过程)。我需要做的是,验证这些数据是否满足一定的断言(例如面额超过50块,补贴力度过大)。由于一台机器的内存不足以存放这些数据,你有四台机器,请你设计一个批量请求的工具,以分布式的方式去跑这些数据,你会做那些设计?回答:我也没听太懂这些问题。以下是搜索结果。我将设计一个分布式批量处理工具来解决发券场景中的大数据验证问题,核心目标是实现高效分片处理、动态负载均衡、分布式断言校验和结果聚合。以下是详细设计方案:整体架构设计核心组件设计1.分布式协调器(Coordinator)部署在Master节点,负责全局调度2.工作节点(Worker)部署在4台工作机器,负责实际处理3.断言验证引擎该设计可实现10w用户数据的分布式处理,核心优势:1. 横向扩展 :通过增加Worker节点可线性提升处理能力2. 故障容忍 :自动重试和检查点机制保证可靠性3. 资源优化 :流式处理避免内存溢出4. 实时监控 :全过程可视化跟踪2.饿了么的搜索功能,请你针对这个搜索功能写一些功能点。比如输入奶茶关键词,返回一些结果。回答:我只回答了搜索框不能为空,对返回结果进行排序等等。以下是搜索结果。1.搜索前引导功能a.热词推荐i.功能描述:搜索框下方动态展示当前商圈热门关键词(如奶茶,果茶)ii.奶茶示例:用户点击奶茶热词,直接跳转到相关商品列表页b.历史搜索i.功能描述 :根据用户过往搜索记录(如“芋泥奶茶”)生成个性化推荐。ii.数据支撑 :历史搜索订单转化率仅次于商家直达c.场景化引导i.功能描述​:分时段(早餐/下午茶)推送关联词(如下午茶时段优先显示“奶茶+甜品”组合)。d.语音/图像搜索i.​功能描述​:支持语音输入“奶茶”或拍摄奶茶图片触发搜索,系统自动转文字并匹配商品。2.关键词处理功能a.​智能纠错与联想​i.功能描述​:自动纠正拼写错误(如“奶车→奶茶”),并联想高频词(如“奶茶→珍珠奶茶”“芝士奶盖”)。ii.技术实现​:基于搜索日志构建纠错词库与拼音转换模型b.​同义词与品类扩展​i.​功能描述​:搜索“奶茶”时同步召回“果茶”“乳茶”等同品类商品。c.​意图识别​d.​功能描述​:i.若用户多次搜索“低卡奶茶”,优先展示低糖商品;ii.若搜索“奶茶+外卖速度”,则突出配送时效快的商家。3.搜索结果展示功能a.​多维度排序​i.​排序逻辑​:综合销量(70%)、评分(20%)、配送速度(10%)等权重生成列表。ii.​奶茶示例​:高销量“喜茶”排列在低销量小众品牌前。b.​分层筛选器​i.​筛选条件​:ii.价格区间(如“10-20元”);iii.口味(“芋泥”“黑糖”);iv.商家服务(“免配送费”“会员折扣”)。c.​商家直达与商品级搜索​i.​功能描述​:ii.输入“奈雪の茶”直接进入店铺页;iii.搜索“霸气葡萄”显示该单品而非全店商品。d.​商业化融合​i.​功能描述​:在结果页插入“奶茶排行榜”或限时优惠活动(如“第二杯半价”)。4.搜索后优化功能a.​个性化结果缓存​i.​功能描述​:用户多次搜索“奶茶”后,首页历史搜索栏固定显示该关键词。b.​搜索分析看板​c.​后台功能​:统计“奶茶”搜索量、点击率、转化率,指导商家优化菜品命名(如将“红茶拿铁”改为“鸳鸯奶茶”)。3.测试人员除了写测试用例之外,还要做那些事情?1.会参与需求的分析与测试策略制定a. 参与需求评审会议,分析需求的可测试性b. 指定测试计划2.测试设计和用例开发a.测试场景建模b.测试用例编写3.测试执行与缺陷管理a.分层测试实施(单元,集成,系统测试)b.缺陷全生命周期管理4.质量评估与报告输出a.质量指标分析b.测试报告编制5.自动化测试实施a.接口自动化b.UI自动化6.跨团队协作a.开发写作b.产品沟通7.测试过程改进8.技术研究与创新笔试题1.SQL题目:用sql找出不同课程的成绩的第二名和第三名WITH RankedScores AS (SELECTstudent_id,course_id,score,RANK() OVER (PARTITION BY course_id ORDER BY score DESC) AS rankFROM scores)SELECTcourse_id,student_id,score,rankFROM RankedScoresWHERE rank IN (2, 3)ORDER BY course_id, rank;2.LeetCode梦的开始:两数之和反问环节1.你们的业务内容回答:主要负责搜索功能和营销功能,搜索就是饿了么的搜索框部分,营销主要负责爆红包等等。日常还要做一些系统的压力测试,以及与其他团队一起做集成测试。年度还会做测试平台开发,质量和效率提升的OKR。2.工作节奏回答:9点半上班,周一到周四可能下班晚一点,周五正常6点下班,周末双休。3.开发技术栈回答:主要是Java
查看11道真题和解析
0 点赞 评论 收藏
分享
省流:一共十分钟,全程八股,一点点项目,最后问我有没有竞赛和其他项目,但我都莫得,大概是凉了。1.自我介绍环节2.为什么选择来应聘Java相关的实习呢3.你在项目中负责哪些模块4.你有做过一些复杂的设计吗5.你对SpringBoot了解吗回答:SpringBoot简化了配置的难度,降低了开发人员的开发门槛。@SpringBootApplication有三个注解。@ComponentScan扫描包内的组件,@SpringBootConfiguration代表这是一个配置类,@EnableAutoConfiguration是核心注解,他会扫描META-INF下的Spring.factorires文件,如果你用到了这些组件,就会生成对应的字节码,这个注解根据字节码来加载所需要的Bean文件。6.你有开发过其他的项目吗回答:莫得7.你了解AOP吗,有没有自己用过回答:AOP是面向切面编程,目标是编写高内聚,低耦合的代码。他将与业务无关,但是会对多个对象产生影响的代码抽离出来单独做一个模块,降低了代码耦合,提高了复用性。常见的例子是做事务管理,日志记录,JWT鉴权8.你有自己定义过一些注解吗回答:有的兄弟有的,比如@Log注解,当代码扫描到这个注解的时候,就去调用切点的Around方法,通过反射拿到所需要的类的信息,然后记录到数据库中,实现日志管理功能9.你用过哪些设计模式,有自己写过一些模式吗Java有23种模式,分为创建型,结构性,行为型三类,常用的有单例模式,确保一个类只有一个实体,并提供全局访问,例如数据库连接池,线程池等等结构型用得比较多的是代理模式,比如Spring的AOP的动态代理就是用的这个行为型用得比较多的是观察者模式,用来事件监听,责任链模式用于处理拦截器。10.在校期间有参加过竞赛吗回答:莫得11.为什么要到上海来实习回答:实习我觉得在哪里都可以,中金所技术是中金所的全资子公司,是行业的龙头企业巴拉巴拉。12.还有别的Offer吗回答:还有在流程中(有点蠢,应该表达下对中金所的向往)13.反问环节:实习内容是什么回答:根据部门需要,会分到不同的任务。
牛客63969800...:我也是,他问我有没有实习经历,我就是为了实习经历来实习的😂,建议我先去实习
查看10道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务