06.10宁银消金后端开发岗面经
总结:面了十几分钟,问的八股我准备的不是很好,有点尴尬#牛客AI配图神器#
通用问题
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)或工厂模式。
通用问题
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)或工厂模式。
全部评论
这是一面还是二面啊
结果如何
相关推荐
点赞 评论 收藏
分享