摘要: 模板方式模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方式结构图如下: java代码实现如下: 抽象模板类 具体实现类,可以有多个 客户端代码 运行结果如下: 阅读全文
posted @ 2018-06-06 21:41 忆雨1992 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 命令模式(Command):将一个请求封装成一个对象,从而可以使用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 命令模式结构图如下: 接下来我们看看命令模式的Java代码实现 命令抽象类 命令的具体类 请求的收集发布者 命令的执行者 客户端代码 执行结果 到这里基本算 阅读全文
posted @ 2018-06-03 23:10 忆雨1992 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 什么叫适配器模式?将一个接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 该模式主要用于希望复用一些现存的类(这些类的数据和行为都正确,但接口不符)。 适配器模式结构图 现在举个例子,公司派了个技术大牛去美国一个公司参加技术交流会,技术大 阅读全文
posted @ 2018-06-01 17:02 忆雨1992 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 每个线程都有要执行的任务。线程的任务处理逻辑可以在Tread类的run实例方法中直接实现或通过该方法进行调用,因此 run()相当于线程的任务处理逻辑的入口方法,它由Java虚拟机在运行相应线程时直接调用,而不是由应用代码进行调用。 而start()的作用是启动相应的线程。启动一个线程实际是请求Ja 阅读全文
posted @ 2018-05-23 22:28 忆雨1992 阅读(18980) 评论(2) 推荐(0) 编辑
摘要: 1. Java作用域--public,private,friendly,protected 2. String,StringBuffer,stringBuilder的区别 3. String和char[]的区别 4. final,finally, finalize的区别 5. static关键字 6 阅读全文
posted @ 2018-05-23 08:24 忆雨1992 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 本篇文章从JVM的角度来理解Java学习中经常提到的重载和重写。 方法调用:方法调用不等同于方法执行,在Java虚拟机中,方法调用仅仅是为了确定调用哪个版本的方法。方法调用分为解析调用和分派。解析调用一定是静态的,而分派可以是静态的,也可以是动态的。我们这里只介绍分派中的静态分配和动态分配。 静态分 阅读全文
posted @ 2018-04-16 22:30 忆雨1992 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 本篇文章将通过一段java代码和它的class文件来了解类文件结构。 什么是class文件? class文件是一组以8位字节为基础的二进制数据流。 示例代码 Main.java: 用16进制编辑器打开Main.class文件如下(图1): 看上图的左上角有一个offset,相当于坐标原点,为了避免重 阅读全文
posted @ 2018-04-02 22:23 忆雨1992 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 老生长谈的两个设计模式了,这里把这两个设计模式对比着来总结一下。 什么是简单工厂模式? (1)首先创建一个抽象运算类Operation.java,里面有一个抽象方法GetResult(),留到子类去实现 (2)创建加法类addOperation.java和减法类subOperation.java,继 阅读全文
posted @ 2018-04-01 22:43 忆雨1992 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 近日在研究设计模式,感觉代理模式是要重点掌握的,在这里记录一下。 什么是代理模式?比较官方的解释是:为其他对象设置一种代理以控制对实际对象的访问。 为了更好的理解代理模式,这里举个例子。在驻外现场,有一个项目经理、“二把手”和若干项目组成员,项目经理每天要安排项目组成员任务,主持晨会,写报告汇报工作 阅读全文
posted @ 2018-01-07 22:23 忆雨1992 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 当一个变量定义为volatile后,它将具备两个特性: 1.保证此变量对所有线程的可见性,所谓“可见性”,,是指当一个线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。(通过主内存,一个线程修改了共享变量,新值立即同步到主内存,其他线程读取该值时从主内存中拉取) 由于volatile变量 阅读全文
posted @ 2017-12-17 22:02 忆雨1992 阅读(550) 评论(0) 推荐(0) 编辑