![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java学习笔记
文章平均质量分 51
Abfahrt
Gonna make it!
展开
-
Equals和==的简单比较
Equals和==的简单比较文章目录Equals和==的简单比较1. equals和 == 的区别1.1 == 比较的是内存地址。1.2 equals 比较的是可重载的等价关系2.重载equals时要重载hashCode()方法2.1为什么需要重载hashCode()?2.2 重载hashCode()应注意什么?3.有关字符串的一些比较3.1 创建字符串 = 和 new 的区别3.2 字符串在常...原创 2020-04-09 10:18:23 · 123 阅读 · 0 评论 -
Java中的小知识点总结(一)
Java中的小知识点总结(一)文章目录Java中的小知识点总结(一)1.占位符2.字符串的比较2.1 创建字符串 = 和 new 的区别2.2 字符串在常量池中和堆中的区别2.3 intern()方法2.4 使用中间变量也会返回指向堆中对象的引用3.System.identityHashCode()4.赋值中的技巧4.1 可读性增强4.2 类型提升4.3 StringBuffer和StringB...原创 2019-12-12 16:58:23 · 118 阅读 · 0 评论 -
设计模式学习—24访问者模式
访问者模式文章目录访问者模式UML解释说明代码实现参考资料UML解释说明访问者模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式适用于数据结构相对稳定的系统,它把数据结构和作用于结构上的操作之间的耦合解开,使操作集合可以相对自由地演化。注意:访问者模式会使新增数据结构变得困难。代码实现Elemen...原创 2019-10-23 15:19:37 · 123 阅读 · 0 评论 -
设计模式学习—23解释器模式
解释器模式文章目录解释器模式UML解释说明代码实现参考资料UML解释说明解释器模式:给定一个语言,定义它的文法中的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。如果一种特定类型的问题发生频率足够高,那么就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决问题。不足:解释器模式为文法中的每一条规则至少定义...原创 2019-10-23 11:32:02 · 120 阅读 · 0 评论 -
设计模式学习—22享元模式
享元模式文章目录享元模式UML解释说明代码实现参考资料UML解释说明享元模式:运用共享技术有效地支持大量细粒度的对象。享元模式可以避免大量非常相似的类的开销,以降低内存的消耗。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果这些实例除了几个参数外基本相同,就能够大幅度减少需要实例化的类的数量。把哪些参数参数转移到享元类外,再在需要的时候传递进来。注意:享元模式的使用会...原创 2019-10-23 10:44:44 · 117 阅读 · 0 评论 -
设计模式学习—21中介者模式
中介者模式文章目录中介者模式UML解释说明代码实现参考资料UML解释说明中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合降低,并且可以独立地改变他们之间的交互。注意:中介者会使交互的复杂性转变成中介者的复杂性。中介者模式一般应用于一组对象以良好但是复杂的方式进行通信的场合,以及想定制一个分布在多个类中的行为,但是又不想生成太多的子...原创 2019-10-22 12:35:20 · 100 阅读 · 0 评论 -
设计模式学习—20职责链模式
职责链模式文章目录职责链模式UML解释说明代码实现参考资料UML解释说明职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。代码实现Handler.classpackage learn20;public abstract class Handler { ...原创 2019-10-22 11:17:17 · 87 阅读 · 0 评论 -
设计模式学习—19命令模式
命令模式文章目录命令模式UML解释说明代码实现参考资料UML解释说明命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;支持请求排队、记录请求日志、支持可撤销操作。代码实现Command.classpublic interface Command { void execute();}Receiver.classpack...原创 2019-10-22 10:35:13 · 197 阅读 · 0 评论 -
设计模式学习—18桥接模式
桥接模式文章目录桥接模式UML解释说明代码实现参考资料UML解释说明桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立的变化。代码实现Implementor.classpackage learn18;public abstract class Implementor { public abstract void operation();}...原创 2019-10-22 10:05:09 · 108 阅读 · 0 评论 -
设计模式学习—17单例模式
单例模式文章目录单例模式UML解释说明代码实现参考资料UML解释说明单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。代码实现基本形式:package learn17;public class Singleton1 { private static Singleton1 instance; private Singleton1()...原创 2019-10-21 18:00:58 · 137 阅读 · 0 评论 -
设计模式学习—16迭代器模式
迭代器模式文章目录迭代器模式UML解释说明代码实现参考资料UML解释说明迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。当访问聚合对象,需要遍历时应优先考虑迭代器模式。(无论聚合的是什么对象)使用迭代器模式,可以为聚合对象提供多种遍历方法。Java 提供 Iterable接口、Iterable(类Aggregate)接口。代码实现...原创 2019-10-21 16:33:05 · 114 阅读 · 0 评论 -
设计模式学习—15组合模式
组合模式文章目录组合模式UML解释说明代码实现参考资料UML解释说明组合模式:将对象组合成树形结构以表示 ‘部分-整体’ 的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。透明模式:Component中包含Add和Remove方法,这在Leaf中无意义。安全模式:Component中不包含Add和Remove方法,会增加调用节点时的判断。代码实现Com...原创 2019-10-21 15:19:07 · 89 阅读 · 0 评论 -
设计模式学习—14备忘录模式
备忘录模式文章目录备忘录模式UML解释说明代码实现参考资料UML解释说明备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,之后可在需要的时候将对象恢复到原先保存的状态。Originator:发起者;Memento:备忘录;Caretaker:管理者。代码实现Memento.classpackage learn14;publ...原创 2019-10-18 11:36:39 · 108 阅读 · 0 评论 -
设计模式学习—13适配器模式
适配器模式文章目录适配器模式UML解释说明代码实现参考资料UML解释说明适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。在双方都不太容易修改的时候再使用适配器模式适配。代码实现Target.class...原创 2019-10-18 10:45:54 · 83 阅读 · 0 评论 -
java反射的简单应用
java反射的简单应用简单实现从配置文件读取类的名称,然后通过反射找到这个类,再执行这个类中的方法。创建接口文件:ITask.class这个文件在inter包中。package inter;public interface ITask { void start();}创建目标Java文件:TaskA.class这个文件在test包里,TaskA类实...原创 2019-10-17 18:08:21 · 125 阅读 · 0 评论 -
设计模式学习—12状态模式
状态模式文章目录状态模式UML解释说明代码实现参考资料UML解释说明状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当一个控制对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中。代码实现State.classpackage learn12;public abstrac...原创 2019-10-17 16:44:56 · 101 阅读 · 0 评论 -
设计模式学习—11抽象工厂模式
抽象工厂模式文章目录抽象工厂模式UML解释说明简单工厂改进抽象工厂参考资料UML解释说明抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指明它们具体的类。简单工厂改进抽象工厂将工厂的实现转化为 switch … case…实现的简单工厂。进一步解耦,调用时不需要知道具体的工厂;但相对带来的是修改代码时的复杂性。参考资料大话设计模式...原创 2019-10-17 16:42:54 · 94 阅读 · 0 评论 -
设计模式学习—10观察者模式
观察者模式文章目录观察者模式UML解释说明代码实现参考资料UML解释说明观察者模式:定义了一种一对多的依赖关系,让多个观察者对象(Observer)同时监听某一个主题对象(Subject)。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式又称为 发布-订阅(Publish/Subscribe)模式。观察者模式的事实是解耦,让耦合的双方依赖于抽...原创 2019-10-16 14:11:02 · 97 阅读 · 0 评论 -
设计模式学习—09建造者模式
建造者模式文章目录建造者模式UML解释说明代码实现参考资料UML解释说明建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。优点:使得建造代码与表示代码分离。符合依赖倒转原则。代码实现Product.classpackage learn09;import java.util.ArrayList;import java.ut...原创 2019-10-16 11:28:34 · 114 阅读 · 0 评论 -
设计模式学习—08外观模式
外观模式文章目录外观模式UML解释说明代码实现参考资料UML解释说明外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。依赖倒转原则和迪米特法则的思想。在旧系统上开发新系统,可以开发一个外观Facade类,用以提供简明的接口;从而使新系统与Facade对象交互,Facade与旧系统交互。代码实现SubSyst...原创 2019-10-16 10:43:38 · 85 阅读 · 0 评论 -
设计模式学习—07模板方法模式
模板方法模式文章目录模板方法模式UML解释说明代码实现参考资料UML解释说明模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。把不变的部分搬移到超类,去除子类中的重复代码,减少代码的冗余。提供了一个很好的代码复用平台。代码实现AbstractClass.classpackag...原创 2019-10-15 17:02:27 · 97 阅读 · 0 评论 -
多线程编程基础
多线程编程基础文章目录多线程编程基础1.进程与线程2.线程的状态3.多线程实现的三种方法3.1 继承Thread类3.2 实现Runnable接口3.3 实现Callable接口4.中断4.1 interrupt4.2 被阻塞线程下的中断4.3 安全地终止线程5.同步5.1 重入锁5.2 同步方法5.3 同步代码块5.4 一些概念5.5 volatile6. 阻塞队列6.1 阻塞队列简介6.2 ...原创 2019-10-14 14:50:44 · 209 阅读 · 0 评论 -
设计模式学习—06原型模式
原型模式文章目录原型模式UML解释说明代码实现参考资料UML解释说明原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。浅拷贝:若是引用类型的字段,复制其引用。深拷贝:若是引用类型的字段,创建新的对象再引用。java中创建浅表副本可以通过实现 Cloneable 接口。代码实现示例实现深拷贝。InfoEntity.classpackag...原创 2019-10-14 11:01:04 · 119 阅读 · 0 评论 -
设计模式学习—05工厂方法模式
工厂方法模式文章目录工厂方法模式UML解释说明代码实现参考资料UML解释说明工厂方法模式是简单工厂模式的进一步抽象和推广。工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式使一个类的实例化延迟到其子类。代码实现与简单工厂模式进行对比。Operation.classpackage learn05;public abstr...原创 2019-10-12 18:37:07 · 101 阅读 · 0 评论 -
设计模式学习—04代理模式
代理模式文章目录代理模式UML解释说明代码实现参考资料UML解释说明为其他对象提供一种代理以控制对这个对象的访问。远程代理:为一个对象在不同的地址空间提供局部代表,隐藏其存在于不同空间的事实。虚拟代理:根据需要创建大开销的对象,用来存放实例化耗时大的真实对象。安全代理:控制真实对象访问时权限。智能代理:调用真实对象时,代理处理另外一些事。代码实现Subject.c...原创 2019-10-11 10:39:10 · 88 阅读 · 0 评论 -
设计模式学习—03装饰模式
装饰模式文章目录装饰模式UML解释说明代码实现参考资料UML解释说明动态地给一个对象添加一些额外的职责。在增加功能的方面上,装饰模式比生成子类更为灵活。有效地把类的核心职责和装饰功能区分开。去除相关类中重复的装饰逻辑。代码实现Component.classpackage learn03;public abstract class Component { ...原创 2019-10-10 10:12:53 · 128 阅读 · 0 评论 -
设计模式中的一些概念
设计模式中的一些概念文章目录设计模式中的一些概念1.单一职责原则2.开放 - 封闭原则3.依赖倒转原则4.里式替换原则1.单一职责原则对一个类而言,应该仅有一个引起他变化的原因。2.开放 - 封闭原则软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。对于扩展是开放的,对于更改是封闭的。3.依赖倒转原则抽象不应该依赖细节,细节应该依赖抽象。针对接口编程,...原创 2019-10-23 15:27:41 · 138 阅读 · 0 评论 -
设计模式学习—02策略模式
策略模式文章目录策略模式UML解释说明代码实现策略模式与简单工厂模式参考资料UML解释说明策略模式:定义多种算法,每种算法单独封装,算法之间可以相互替换。也即算法变化,使用算法的调用者不受影响。通过使用策略模式,可以通过相同的方式调用不同的算法。减少了定义算法与使用算法之间的耦合。策略模式简化了单元测试,即每个算法在一个单独的类中,可以单独测试。代码实现Strateg...原创 2019-10-09 10:44:12 · 119 阅读 · 0 评论 -
设计模式学习—01简单工厂模式
简单工厂模式文章目录简单工厂模式UML代码实现参考资料UML代码实现Operation.classpackage learn01;public abstract class Operation { private double numberA =0; private double numberB =0; public double getNumb...原创 2019-10-08 19:00:26 · 120 阅读 · 0 评论