我才不会刷题呢 level
获赞
78
粉丝
23
关注
11
看过 TA
653
南京航空航天大学
2026
Java
IP属地:加拿大
勇闯饿了么版
私信
关注
总结:面了十几分钟,问的八股我准备的不是很好,有点尴尬通用问题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 点赞 评论 收藏
分享
没有笔试环节,只有一轮面试。面试体验良好,面试官很和蔼。项目提问1.你的项目架构是什么回答:前端VUE,后端Springboot,持久层MySQL+Mybatisplus2.你们是怎么做需求分析的3.你负责的工作内容是什么,在过程中遇到了哪些具体的挑战4.你们的测试用例的格式5.你认为你为什么能胜任这个岗位6.你三年内的工作规划是怎么样的第一年主要学习所在项目组的技术栈和框架,尽快跟上团队步伐。在熟练掌握项目后,我希望更加深入了解公司的业务和管理流程,学习更多的管理知识和技巧,提升自己的眼界和格局。7.你有用过哪些AI工具我主要使用DeepSeek辅助我的工作流程,使用AI插件去做代码调试8.软件测试的定位和意义是什么他是软件生命周期中不可或缺的一环,在保证软件的质量,提升用户使用体验和系统安全稳定的领域起着重要的作用。9.软件测试人员应当具备的能力有哪些10.测试人员会做那些事情可能要写功能点,要根据功能点写测试用例,并且测试有问题要提交bug报告。在自动化测试方面,可能要设计测试工具的开发,分为UI自动化测试和接口自动化测试。1.会参与需求的分析与测试策略制定a.参与需求评审会议,分析需求的可测试性b.指定测试计划2.测试设计和用例开发a.测试场景建模b.测试用例编写3.测试执行与缺陷管理a.分层测试实施(单元,集成,系统测试)b.缺陷全生命周期管理4.质量评估与报告输出a.质量指标分析b.测试报告编制5.自动化测试实施a.接口自动化b.UI自动化6.跨团队协作a.开发写作b.产品沟通7.测试过程改进8.技术研究与创新11.有了解过自动化测试吗回答:有了解过Pytest,Selenium(其实不太会)面经环节12.重载和重写的区别是什么重载指的是函数或者接口,针对不同的输入参数进行重载,让这个接口可以接受不同类型的输入参数;重写指的是子类重写父类的函数,使其更加符合子类的特征要求13.有用过泛型吗核心价值是类型安全,消除运行时的ClassCastException风险向一个List<String>中添加Integer类型的元素,编译器会直接报错,而并非在运行时崩溃,从而将错误发现提前到开发阶段,显著提升代码可靠性。比如写方法 add(int a,int b),add(double a,double b)现在只要写add(T a,T b) return a+b集合里面,以前List = new ArrayList();List.add("hello")String str = (String)list.get(0)现在List<String> = new String<>();List.add("hello")String str = list.get(0);是为了存和取都不会出错ClassCastException风险可以实现通用代码模板,例如List<T>,Map<K,V>可以存储任意类型对象反问环节1.业务方向和架构业务方向有餐厅,供应链等系统的开发测试。主要做敏捷开发,两周迭代一个版本,前一个星期分析需求和开发,后一个星期测试。主要工作内容是测试业务接口和功能,开发自动化测试平台,分为接口自动化和UI自动化。2.是否加班不考勤,一般9点到,6点走,偶尔会加班。
查看13道真题和解析
0 点赞 评论 收藏
分享
虽然笔试没过,但还是参加一下AI面试,以下是记录总结。1.计算机网络:TCP的粘包问题(刚背的,可熟悉了)回答:在网络拥塞或者Nagle算法中,会将多个TCP包合在一起,但是TCP在传输中是以字节流形式的,粘在一起之后没办法区分包之间的边界,例如发送两个数据包Hello 和World,合在一起后,接收方收到的是HelloWorld。解决办法主要有四个,第一个是固定数据包的大小,发生粘包后根据字节大小切分,但这样比较死板;第二种是在数据包末尾加入"\n"的分隔符,但是在中间文本中出现了分隔符的话,需要进行转义;第三种是在TCP报文前加入一个字段,记录这个包的大小,这种比较常用;第四种是对协议进行限制,例如禁用Nagle算法,不允许合并数据包。2.Linux:grep如何使用(确实没准备)回答:完全不会。3.Java:装箱和拆箱是什么,举一个例子。回答:举了int型和Integer类的例子,一些接口使用的时候会发生拆箱和装箱(但我不太记得了)4.高并发:解决投票中刷票问题回答:使用IP检测,限制单个IP的高频访问。追问:要是对方使用代理IP,或者IP连接池该怎么解答回答:根据行为检测,刷票行为和个人投票行为肯定存在差异(但我不知道差异是什么)5.数据库:主键的作用是检索到这条数据的唯一标识,也用来构建聚簇索引。(应该还有其他作用但我忘了。)6.通用问题1:学习新技术的路线回答:阅读官方文档,对于难点搜索视频讲解或者Github文档;项目实战有问题去找熟悉项目的技术人员。追问1:如何判断学习资料是否有用,是否走过弯路回答:根据点赞量,Start量。追问2:走过弯路后下次如何判断?回答:根据文档关键词判断对我是否有帮助?7.通用问题2:你项目中遇到的难点怎么解决追问1:如何通过持续改进解决一个一直出现的问题追问2:如何平衡局部调优和整体的稳定性8.通用问题3:你未来3年的职业规划回答:1-2年熟悉公司技术栈,后续熟悉公司业务流程,做到技术和业务两手抓。最后给出DeepSeek的回答。1.计算机网络:TCP的粘包问题TCP粘包问题是由于TCP是面向字节流的协议,发送端可能将多个数据包合并发送(如Nagle算法或网络拥塞),接收端无法区分数据边界。例如发送"Hello"和"World",接收端可能收到"HelloWorld"。解决方案 :● 固定包长度 :每个包固定为相同长度(不足时填充),接收方按固定长度拆分。缺点是灵活性差,适合固定格式场景。● 分隔符 :在数据包末尾添加特殊字符(如\n),接收方按分隔符拆分。需处理数据中的转义字符(如HTTP头用\r\n\r\n)。● 头部声明长度 :在报文头部添加长度字段(如4字节表示包体长度),接收方先读头部,再按长度截取数据。这是最常用的方式(如HTTP的Content-Length)。● 禁用Nagle算法 :通过TCP_NODELAY选项关闭合并优化,但可能增加小包传输次数,影响性能。2.Linux:grep如何使用grep用于文本搜索,常见用法:● 基本搜索 :grep "pattern" file.txt● 递归搜索目录 :grep -r "pattern" /path/to/dir● 忽略大小写 :grep -i "pattern" file.txt● 显示行号 :grep -n "pattern" file.txt● 反向匹配(排除)  :grep -v "pattern" file.txt● 正则表达式 :支持^(行首)、$(行尾)、.(任意字符)等,如grep "^start" file.txt。3.Java:装箱和拆箱是什么,举一个例子● 装箱(Autoboxing)  :将基本类型转换为包装类,如int → Integer。● 拆箱(Unboxing)  :将包装类转换为基本类型,如Integer → int。Integer a = 10;      // 自动装箱(底层调用Integer.valueOf(10))int b = a;           // 自动拆箱(底层调用a.intValue())4. 高并发:解决投票中刷票问题● 基础防御 :  IP限流 :限制同一IP单位时间内的请求次数(如Redis计数器+过期时间)。○ 用户鉴权 :要求登录后投票,限制每个用户的投票次数。○ 验证码 :在频繁请求时触发验证码(如滑动拼图、短信验证)。● 对抗代理/IP池 :  设备指纹 :通过浏览器指纹(UserAgent、Canvas渲染)、设备ID等标识唯一设备。○ 行为分析 :检测异常行为(如毫秒级连续投票、无页面停留直接提交)。○ 风控系统 :实时分析请求特征(IP地理分布、时间分布),拦截异常流量。● 业务层优化 :  异步队列削峰 :将投票请求放入消息队列,后端批量处理,避免瞬时高并发。5.  数据库:主键的作用● 唯一标识 :确保每行数据的唯一性(如自增ID、UUID)。● 聚簇索引 :InnoDB中主键默认作为聚簇索引,数据按主键顺序物理存储,加快检索速度。● 外键关联 :主键作为其他表的外键,维护数据一致性。● 优化查询 :主键查询最快(如WHERE id=1),避免全表扫描。●注意事项 :避免业务字段做主键(如身份证号),优先使用无意义的自增ID。●复合主键需谨慎,可能增加索引复杂度。6.  通用问题1:学习新技术的路线● 学习路径 :  官方文档 :掌握核心概念和最佳实践(如Spring Boot的Spring.io)。○ 实践项目 :通过小项目验证技术点(如用Redis实现分布式锁)。○ 源码与社区 :阅读源码、参与GitHub讨论(如Dubbo的Issue)。● 判断资料质量 :  筛选标准 :作者权威性(如Oracle认证工程师)、内容更新日期、社区评价(Stack Overflow投票)。○ 避免弯路 :优先选择官方推荐资源,再参考高星GitHub项目或经典书籍(如《Effective Java》)。● 持续改进 : 定期复盘学习效果,建立知识体系脑图,与团队分享经验。7.  通用问题2:项目难点解决结构化回答(STAR模型)  :● 情境(Situation)  :在XX项目中,接口响应慢,导致超时报警。● 任务(Task)  :需在1周内将平均响应时间从2s优化至200ms内。● 行动(Action)  :  定位瓶颈 :通过Arthas追踪调用链,发现SQL查询耗时占80%。○ 优化SQL :添加索引、重构分页查询,减少全表扫描。○ 缓存引入 :对热点数据(如配置信息)增加Redis缓存。● 结果(Result)  :响应时间降至150ms,且通过压测验证稳定性。●平衡调优与稳定 :局部优化前评估影响范围,通过灰度发布观察效果。●监控核心指标(CPU、内存、错误率),确保优化不引发链式故障。8.  通用问题3:未来3年的职业规划● 短期(1年)  : 深入掌握公司技术栈(如微服务架构、中间件),成为团队核心开发。○参与高复杂度模块(如分布式事务、性能优化)。● 中期(2年)  : 提升架构设计能力,主导跨系统方案设计(如亿级流量系统)。○培养业务洞察力,推动技术与业务融合(如通过数据驱动产品决策)。● 长期(3年)  : 向技术管理者或架构师转型,负责技术选型与团队规划。○持续学习行业前沿(如云原生、AI工程化),保持技术敏感度。
查看12道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

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