自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 设计模式之组合模式

组合模式定义了包含基本对象、组合对象的类层次结构。基本对象可以被组合成更复杂的组合对象。而这个组合对象又可以被组合,这样不断的递归下去,客户代码中,任何用到基本对象的地方都可以使用组合对象了。用户无需关心到底是处理一个叶节点还是处理一个组合对象,也就用不着为定义组合而写一些选择判断语句了。

2023-12-15 11:42:27 423

原创 设计模式之桥接模式

在面向对象设计中,我们还有一个很重要的设计原则,那就是合成/聚合复用原则。即优先使用对象合成/聚合复用原则,而不是类继承。

2023-12-13 14:15:44 798 1

原创 设计模式之适配器模式

适配器模式可以将客户端本不适用的接口,经过适配,达到客户端可以使用的模式。主要目的是兼容,让原本因接口不匹配,不能一起工作的两个类可以协同工作,其别名是包装器。(Wrapper)适配器模式属于结构型模式。主要分为三类:类适配器,对象适配器,接口适配器。基本思路和类适配器模式相同,只是将Adapter类做修改,不再继承Voltage220V类,而是持有Voltage220V类的实例。以解决兼容性的问题。根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系。

2023-12-12 16:02:54 358

原创 设计模式之建造者模式

优点是好理解,使用简单。缺点是程序设计的过于简单,缺少缓存层对象。程序不利于拓展和维护。这种设计方案把产品(房子)和构建过程都放到了一起。增加了耦合度。解决办法:将产品和产品建造过程解耦,===> 使用建造者模式。建造者模式又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们。用户不需要知道内部的具体构建细节。

2023-12-11 14:34:18 872 1

原创 设计模式之原型模式

但是现在的代码属于是浅拷贝,如果被克隆的类中存在引用类型字段,这个时候,我们新克隆出来的对象的引用对象只会指向被克隆对象的地址,而不是创建新的引用类型对象。根据结果可以看到,新创建的sheep1、sheep2、sheep3、sheep4的dog的hashcode地址一致,并没有创建新的Dog对象。可以看到在没有使用原型模式的时候,我们需要手动的去初始化对象,并且如果被克隆的对象增加了新的字段,我们的代码也会受到影响。此时可以看到我们在克隆对象的同时也克隆了他的引用类型字段。我们的被克隆类新增了Dog类。

2023-12-07 14:57:54 291 1

原创 大厂面试题个人笔记

大厂面试题笔记一、volatile关键字jvm提供的轻量级的同步机制三特性1.可见性2.不可原子性3.禁止指令重排1.可见性在a线程修改了共享变量x之后,其他线程会收到通知. 得到共享变量x最新的值2.不可原子性在多线程的环境下 线程是交替执行的。可能会导致结果不一致。(值覆盖)3.禁止指令重排指令重排在单线程下没有问题但是在多线程下 在没有数据依赖性的时候 指令重排会导致系统出错问:如何不用sychonized解决volatile的原子性问题?答:使用AtomicInte

2021-06-29 08:20:45 100

原创 Error:java: Cannot find JDK '1.8.0_201' for module 'employment-util'

Error:java: Cannot find JDK ‘1.8.0_201’ for module ‘employment-util’找到iml文件将对应配置删除即可

2019-03-11 10:58:26 14993 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除