首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
hwx的offer快来
门头沟学院 Java
发布于广东
关注
已关注
取消关注
java设计模式-个人总结
@hwx的offer快来:
java设计模式-个人总结
1.常见设计模式知道哪些?2.设计模式的分类 创建型设计模式:单例模式构建模式原型模式抽象工厂模式工厂方法模式行为设计模式:状态模式命令模式解释器模式迭代器模式备忘录模式责任链模式模板方法模式观察者模式访问者模式中介者模式结构型设计模式:装饰者模式外观模式组合模式蝇量模式代理模式享元模式桥连接模式适配器模式简单解释:单例模式(Singleton):确保有且只有一个对象被创建。抽象工厂模式(Abstract Factory):允许客户创建对象的家族,而无需指定他们的具体类。工厂方法模式(Factory Method):由子类决定要创建的具体类是哪一个。装饰者模式(Decorator):包装一个对象,以提供新的行为。状态模式(State):封装了基于状态的行为,并使用委托在行为之间切换。迭代器模式(Iterator):在对象的集合之中游走,而不暴露集合的实现。外观模式(Facade):简化一群类的接口。策略模式(Strategy):封装可以互换的行为,并使用委托来决定要使用哪一个。代理模式(Proxy):包装对象,以控制对此对象的访问。适配器模式(Adapter):封装对象,并提供不同的接口。观察者模式(Observer):让对象能够在状态改变时被通知。模板方法模式(Template Method):有子类决定如何实现一个算法中的步骤。组合模式(Composite):客户用一致的方法处理对象集合和单个对象。命令模式(Command):封装请求成为对象。附:https://www.cnblogs.com/liuzhen1995/p/6047932.html3.单例模式1.单例模式5常见的写法饿汉式懒汉式双检锁静态内部类枚举2.单例的四大原则:构造私有以静态方法或者枚举确保实例只有一个,尤其是多线程环境确保反序列化时不会重新构造对象3.代码饿汉模式-在类被初始化时就已经在内存中创建了对象:以空间换时间,故不存在线程安全问题。public class SingleTon{ //其实就是new private static SingleTon INSTANCE = new SingleTon(); private SingleTon(){} public static SingleTon getInstance(){ return INSTANCE; }} 懒汉模式-在方法被调用后才创建对象,以时间换空间,在多线程环境下存在风险。public class SingleTon{ //先赋null 调用方法才申请内存空间 private static SingleTon INSTANCE = null; private SingleTon(){} //其实就是调用方法才new public static SingleTon getInstance() { if(INSTANCE == null){ INSTANCE = new SingleTon(); } return INSTANCE; } }静态内部类-用的最多public class SingleTon{ private SingleTon(){} //就是静态内部类里面new private static class SingleTonHoler{ private static SingleTon INSTANCE = new SingleTon(); } public static SingleTon getInstance(){ return SingleTonHoler.INSTANCE; } }双检检查锁public class SingleTon{ private static SingleTon INSTANCE = null; private SingleTon(){} //就是俩个多了if判断 和 synchronized public static SingleTon getInstance(){if(INSTANCE == null){ synchronized(SingleTon.class){ if(INSTANCE == null){ INSTANCE = new SingleTon(); } } return INSTANCE; } } }SingleTon方法INSTANCE = new SingleTon(); SingleTon方法:1.在堆内存开辟内存空间。2.在堆内存中实例化SingleTon里面的各个参数。3.把对象指向堆内存空间。附:深入理解单例模式:静态内部类单例原理https://blog.csdn.net/mnb65482/article/details/804585714.说下设计模式的原则1.设计模式的六大原则开闭原则里氏替换原则依赖倒转原则接口隔离原则最少知道原则合成复用原则解释:开闭原则:对扩展开放,对修改关闭。里氏代换原则:父类与子类的继承关系,在父类的基础上有新的方法(行为),调用的时候又能代替父类的方法而且不影响;依赖倒转原则:针对接口编程,依赖于抽象而不依赖于具体;最少知道原则:单一继承或者说就是单调用减少相互作用 合成复用原则:尽量使用合成/聚合的方式,而不是使用继承。5.Spring 框架中都用到了哪些设计模式?【单例模式】Spring 中的 Bean 默认都是单例的【简单工厂】由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。【工厂方法】实现了FactoryBean接口的bean是一类叫做factory的bean。其特点是,spring会在使用getBean()调用获得该bean时,会自动调用该bean的getObject()方法,所以返回的不是factory这个bean,而是这个bean.getOjbect()方法的返回值。【模板方法模式】 Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。父类定义了骨架(调用哪些方法及顺序),某些特定方法由子类实现。最大的好处:代码复用,减少重复代码。除了子类要实现的特定方法,其他方法及方法调用顺序都在父类中预先写好了。【包装器设计模式 】 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。【观察者模式】Spring 事件驱动模型就是观察者模式很经典的一个应用。spring的事件驱动模型使用的是 观察者模式 ,Spring中Observer模式常用的地方是listener的实现【适配器模式】 Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller。Spring定义了一个适配接口,使得每一种Controller有一种对应的适配器实现类,让适配器代替controller执行相应的方法。这样在扩展Controller时,只需要增加一个适配器类就完成了SpringMVC的扩展了【装饰器模式】动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。Spring中用到的包装器模式在类名上有两种表现:一种是类名中含有Wrapper,另一种是类名中含有Decorator。【动态代理】切面在应用运行的时刻被织入。一般情况下,在织入切面时,AOP容器会为目标对象创建动态的创建一个代理对象。SpringAOP就是以这种方式织入切面的。织入:把切面应用到目标对象并创建新的代理对象的过程。【策略模式】Spring框架的资源访问Resource接口。该接口提供了更强的资源访问能力,Spring 框架本身大量使用了Resource 接口来访问底层资源。6.项目中用到哪些设计模式?略[看好戏]
点赞 22
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-04 16:57
禾赛科技_嵌入式软件工程师(准入职员工)
禾赛科技内推,禾赛科技内推码
禾赛科技软件测试面经全程一个小时左右,需要写SQL和代码- 自我介绍- 项目提问- 项目里面的好友列表咋做数据库设计的- TCP四次挥手- python基本数据结构- 列表和数组的区别- 写SQL(用到分组、排序、聚合函数)- 写代码(输入一个数,各个位上两两交换位置,输出最大的数)全球激光雷达Top禾赛科技26届校招【企业介绍】全球领先的激光雷达研发与制造企业,全球激光雷达市占率No.1,美国纳斯达克上市。【开放岗位】商务类、产品类、项目管理类、销售类、系统类、芯片类、光学类、机械类、电子类、软件类、算法类、测试类、制造类【面向人群】毕业时间:2024.7-2025.12【工作地点】上海、杭...
点赞
评论
收藏
分享
01-05 14:59
TP-LINK_软件算法工程师(准入职员工)
禾赛科技内推,禾赛科技内推码
禾赛科技 嵌入式开发(操作系统)面经⚜技术是真的过硬啊,秋招嵌入式被拷打的最狠之一。原定45分钟,拷打一个半小时,涉及知识面特别广,实际问的比这还要多,记忆有限。不过也无后续,但也没挂,估计在L3缓存里面吧⭕一面(9.18)1. 自我介绍2. 项目介绍3. 有没有测量IMU精度4. 串口有几根线,中断配置?5. IIC有几根线?讲一讲怎么通信?详细说一下读取寄存器的流程6. 说一说任务有哪几种状态?就绪和阻塞的任务放在哪里?放在同一个链表上面吗?7. 任务怎么进入阻塞态?(主动挂起,被强占,争取不到资源等)8. 说一说死锁?9. 怎么解决死锁问题?(获取不到锁的时候,释放本身的资源)10. 有...
点赞
评论
收藏
分享
2025-12-01 16:14
成都信息工程大学 Java
28届小登越来越迷茫了
鼠鼠双非软工,大一刚入学时,坚定的走上了后端开发的道路。大一上学习了springboot+vue这套,大一下开始就主要在学习golang相关。现在一个项目是springboot+vue写的oj平台,一个是go-zero+tauri写的ai语音对话助手。鼠鼠所在的实验室今年前端走出了7位大厂,后端情况却不太好。到底是该考研,就业,还是转方向啊。
点赞
评论
收藏
分享
2025-11-25 16:26
已编辑
美团_数据平台部_java开发(实习员工)
秋招大满败,26届去实习了
秋招面了20几场,挂1/2/3面均有,最后结果就是大中小厂无一offer,最后去实习了,大伙找不到的都去投实习吧,多关注刚放出来的岗位,容易捡漏ps:后续又有快手约面,现在字节美团快手一大堆面试,兄弟们快投
牛客78099800...:
实习现在还不捞26届的啊,我投了很多,没有进流程的,以为是在搞秋招,但意外发现大三的不少都面实习了
点赞
评论
收藏
分享
01-07 10:47
北京化工大学 Java
黑马SSM学习日记|day01
受到一位名叫程序员牛肉的前辈的影响,我开始写学习博客,主要目的是为了帮助自己巩固所学知识,与诸君共勉!先简单介绍一下本人情况。本人大三,目前学习了javase,javaweb,mysql,黑马点评,苍穹外卖,jvm,目前未找到实习,自己太拉了。但是在仅有的几次面试中,我发现了自己在看视频跟着学的时候,虽然能看懂,明白其中的弯弯绕绕,但是真正到自己上手做的时候,总是难以下手。总结来说,就是自己以为自己明白了,但是其实只是瞬时记忆,所以我想通过博客记录的方式来总结每天所学知识。SSM课程简介这套课程主要是为了讲清楚spring、springmvc、springboot、maven、mybatisp...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
1
1
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
秋招50+场面试手撕算法汇总
1.2W
2
...
双非非科班2年时间的转码历程
9956
3
...
批判“上岸即胜利”的炫耀
9411
4
...
简历挂麻了?因为你的简历只有“宽度”没有“深度”!
5332
5
...
Caffeine 面经汇总
3902
6
...
小鹏汽车二面(没绷住)
2631
7
...
写论文麻了
2105
8
...
2025年牛客年度作者礼盒开箱(礼盒部分)
1860
9
...
产品自用的prompt
1454
10
...
测开劝退
1173
创作者周榜
更多
正在热议
更多
#
哪些公司在招寒假实习?
#
15485次浏览
195人参与
#
国企vs私企,你更想去?
#
305685次浏览
2491人参与
#
MiniMax求职进展汇总
#
754次浏览
23人参与
#
26年哪些行业会变好/更差
#
18710次浏览
256人参与
#
卷__卷不过你们,只能卷__了
#
11771次浏览
264人参与
#
有深度的简历长什么样?
#
16451次浏览
341人参与
#
写论文的崩溃时刻
#
6315次浏览
148人参与
#
去年的flag与今年的小目标
#
9879次浏览
196人参与
#
关于春招你都做了哪些准备?
#
122162次浏览
707人参与
#
机械人,你最希望上岸的公司是?
#
198080次浏览
1917人参与
#
现在还是0offer,延毕还是备考
#
1256397次浏览
7922人参与
#
你不能接受的企业文化有哪些
#
11729次浏览
169人参与
#
入职第一天
#
10058次浏览
219人参与
#
租房前辈的忠告
#
350460次浏览
7445人参与
#
你都用AI做什么
#
6767次浏览
156人参与
#
你怎么看待AI面试
#
133412次浏览
745人参与
#
发工资后,你做的第一件事是什么
#
93117次浏览
311人参与
#
最难的技术面是哪家公司?
#
62966次浏览
949人参与
#
腾讯音乐求职进展汇总
#
147914次浏览
1053人参与
#
华为池子有多大
#
159141次浏览
876人参与
#
一人分享一道面试手撕题
#
22672次浏览
801人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务