自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JavaGogo的博客

www.javagogo.cn

  • 博客(38)
  • 资源 (7)
  • 收藏
  • 关注

转载 设计模式-抽象工厂模式

简介:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。总结:工厂模式->一种工厂,多种对象;抽象工厂模式->一种抽象工厂,多种工厂,每个工厂可以生产多种对象。代码示例:interface Animals { void name();}class Cat implements Animals { @Override pub...

2019-12-07 09:44:27 131

转载 设计模式-享元模式

运用共享技术有效地支持大量细粒度的对象。总结:重用现有的同类对象,若未找到匹配的对象,则创建新对象。例如,数据库的连接池,减少对象的创建,降低系统内存,提高效率。public class Flyweight{ public static void main(String[] args){ //red Circle默认存在,所以拿的时候不用new ...

2019-12-07 09:43:22 124

转载 设计模式-组合模式

将对象组合成树形接口以表示“部分-整体”的层次接口。组合模式使得用户对单个对象和组合对象的使用具有一致性。总结:创建了一个包含自己对象组的类,并提供修改对象组的方法。应用场景,如树形菜单、文件、文件夹的管理。public class Composite{ public static void main(String[] args){ Person per...

2019-12-07 09:42:20 127

转载 设计模式-桥接模式

将抽象部分于实现部分分离,使它们都可以独立的变化。总结:通过对Bridge类的调用,实现了对同一接口下不同实现类的调用,建立一个继承于同一抽象的不同实现类之间的关联关系,这个关系由Brigde类桥接起来。public class Bridge{ public static void main(String[] args){ AnimalsBridge b...

2019-12-07 09:41:26 118

转载 设计模式-外观模式

为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口是得这一子系统更加容易使用。总结:在客户端和复杂系统之间再加一层,在这一层中将调用顺序、依赖关系等处理好,提供一个容易使用的外观层。public class Facade{ public static void main(String[] args){ Computer comp...

2019-12-07 09:40:22 72

转载 设计模式-代理模式

为其它对象提供一种代理以控制对这个对象的访问。总结:创建类的代理类,间接访问被代理类的过程中对其功能加以控制,例如在某个函数执行前后添加额外功能。(代理例子:买火车票不一定在火车站买,也可以去代售点)。和装饰器模式的区别:装饰器模式为了增强功能,而代理模式是为了加以控制,“形式”虽然相似,“语义”却截然不同,起中介作用。public class Proxy{ public st...

2019-12-07 09:39:15 88

转载 设计模式-装饰器模式

动态的给一个对象添加一些额外的职责,就增加功能来说,装饰器模式相比生成子类更为灵活。总结:创建类的装饰类,对被装饰类增强功能。装饰模式是继承的一个替代模式。public class Decorator{ public static void main(String[] args){ Animals dog = new AnimalsDecorator(n...

2019-12-07 09:38:12 77

转载 设计模式-适配器模式

将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。总结:衔接两个不兼容、独立的接口的功能,使得它们能够一起工作。适配器起中介作用。public class Adapter{ public static void main(String[] args){ //兼容了高级功能的普通播放器 ...

2019-12-07 09:37:09 69

转载 设计模式-解释器模式

给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。总结:自己定义一种语言或表达式(附对应的解释器),用来表示一些复杂的频繁发生的行为。例如:正则表达式的解释,sql语句的解释。使用场景极少,会一起效率、性能、维护等问题。public class Interpreter { public static void main(String[] a...

2019-12-07 09:35:58 82

转载 设计模式-中介者模式

用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。总结:中介者对象,用来封装关联对象之间的交互操作,使关联对象之间耦合度松散;例如,MVC模式中“控制器”就是“模型”和“视图”的中介者;适配器模式为了桥接互补兼容的接口,中介者为了分离原始接口和交互行为。public class Mediator { pu...

2019-12-07 09:34:39 70

转载 设计模式-访问者模式

主要将数据结构与数据操作分离。总结:在被访问的类里面加一个对外提供接待访问者的接口(如下面的accept()方法)。凤纹着封装了对被访问者结构的一些杂乱操作,避免这些操作“污染”被访问者,解耦结构与算法,同时具有优秀的扩展性。public class Visitor { public static void main(String[] args) { Compu...

2019-12-06 11:05:32 84

转载 设计模式-状态模式

允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。总结:对象具有多种状态,且每种状态具有特定的行为;应用场景:行为随状态改变而改变,代码形式似乎也和哪种设计模式相似,但是设计模式提倡的是思想,而不是形式。public class StateDemo { public static void main(String[] args) { QQCo...

2019-12-06 11:04:32 86

转载 设计模式-备忘录模式

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。总结:创建一个备忘录类,用来存储原始类的信息,同时创建备忘录仓库类,用来存储备忘录类,当然,原始类和备忘录类的对应关系要处理好。public class MementDemo{ public static void main(String[] args) { Originator ori...

2019-12-06 11:03:27 66

转载 设计模式-命令模式

将一个请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化。总结:三种角色(调用者->接收者->命令),解耦行为请求者和行为实现者,实现请求和执行分开,调用者选择命令发布,命令直定执行者。public class CommandDemo{ public static void main(String[] args){ Receiver...

2019-12-06 11:02:04 75

转载 设计模式-责任链模式

避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到又对象处理它为止。总结:在Handler类里面聚合自己,形成一条Handler链(或树、环等),并且可以将请求往下一个Handler传递(只允许传给另一个,而不允许传给多个)。例子:struts拦截器,filter过滤器。public class Chain_of_Respon...

2019-12-06 10:34:38 67

转载 迭代器模式

提供一种方法顺序访问一个聚合对象中各个元素,而又无需暴漏该对象的内部表示。总结:Java中的iterator的简单实现原理。将聚合类中遍历各个元素的行为分离出来,封装成迭代器,让迭代器来处理遍历的任务,使简化聚合类,同时又不暴露聚合类的内部。public class IteratorDemo{ public static void main(String[] args){ ...

2019-12-06 10:33:29 66

转载 设计模式-观察者模式

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。总结:一个对象(被观察者)状态变化时,通知所有依赖于它的对象(观察者),这种依赖方式具有双向性,观察者指定被观察的对象,或者被观察对象添加观察者。public class Observer{ public static void main(String[] args){ ...

2019-12-06 10:32:09 88

转载 设计模式-模板方法模式

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。总结:将一些固定步骤、固定逻辑的方法封装成模板方法。调用模板方法即可完成哪些特定的步骤。例如,spring中对hibernate的事务管理,开启session、关闭session等固定步骤不需要重复写,直接丢给一个实体保存。public class Template...

2019-12-06 10:30:53 84

转载 设计模式-策略模式

定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。总结:统一接口下的一系列算法类(多种策略),用一个类将其封装起来,使它们(多种策略)可动态切换。和工厂模式的区别:工厂模式是创建型模式,是为了创建不同的对象,而策略模式是行为模式,为了选择不同的行为。public class Strategy{ public static void main(String[] arg...

2019-12-06 10:29:18 96 1

转载 创建支持并发的分布式锁

使用redlock实现分布式锁redlock简介在不同进程需要互斥的访问共享资源时,分布式锁是一种非常有用的技术手段。实现高效的分布式锁有三个方面需要考虑:a.安全性:互斥,在任何时候,只有一个客户端持有锁b.效率:不会出现死锁(一个客户端阻塞后,持有的锁无法释放)c.容错:只要大多数redis节点能够正常工作,客户端都能获取和释放锁redlock是redis官方提出的实现分布式锁...

2019-12-06 10:26:44 150

转载 一个类可以实现多个接口,但只能继承一个抽象类。

接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。而抽象类在代码实现方面发挥作用,可以实现代码的重用,例如,模板方法设计模式是抽象类的一个典型应用,假设某个项目的所有Servlet类都要用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个抽象的基类,让所有的Servlet都继承这个抽象基类,在抽象基类的service方法中完成权限判断、记录访问日志和处理异常的...

2018-12-25 22:01:55 17304

转载 abstract class和interface有什么区别?

含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为...

2018-12-25 22:00:07 4683

转载 面向对象的特征有哪些方面

计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程。面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织和编写,让计算机系统能够识别和理解用对象方式组织和编写的程序代码,这样就可以把现实生活中的业务对象映射到计算机系统中。面向对象的编程语言有封装、继承、抽象、多态等4个主要的特征。1-封装:封装是保证软件部件具有优良的模块性的...

2018-12-25 21:58:45 193

转载 Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

Overload是重载的意思,Override是覆盖的意思,也就是重写。重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象...

2018-12-25 21:56:42 125

转载 Integer与int的区别

int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达...

2018-12-25 21:55:17 167

转载 静态变量和实例变量的区别?

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来...

2018-12-25 21:53:57 3036

转载 "=="和equals方法究竟有什么区别?

==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet obj = new Object();变量obj是一个内存,new Object()是另一个内存,此...

2018-12-25 21:52:19 193

转载 请设计一个一百亿的计算器

首先要明白这道题目的考查点是什么,一是大家首先要对计算机原理的底层细节要清楚、要知道加减法的位运算原理和知道计算机中的算术运算会发生越界的情况,二是要具备一定的面向对象的设计思想。首先,计算机中用固定数量的几个字节来存储的数值,所以计算机中能够表示的数值是有一定的范围的,为了便于讲解和理解,我们先以byte 类型的整数为例,它用1个字节进行存储,表示的最大数值范围为-128到+127。-1在内...

2018-12-25 21:42:11 349

转载 在JAVA中如何跳出当前的多重嵌套循环?

在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如, ok: for(inti=0;i<10;i++)    {            for(intj=0;j<10;j++)              {                     System...

2018-12-25 21:39:10 90

转载 &和&&的区别

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当...

2018-12-25 21:36:16 81

转载 Overload和 Override的区别。Overloaded的方法是否可以改变返回值的类型?

方法的重写Override,子类覆盖父类的方法,将子类传与父类的引用调用的还是子类的方法。重载Overloading 一个类多个方法,名称相同,参数个数类型不同。两者都是Java 多态性的不同表现。Overloaded 的方法是可以改变返回值的类型。public class Ctest(){    ​Public static void main()    ​{...

2018-12-24 17:52:22 383

转载 什么是 java序列化,如何实现 java序列化?(写一个实例)

序列化:可以将一个对象保存到一个文件,所以可以通过流的方式在网络上传输,可以将文件的内容读取,转化为一个对象。处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable 接口,该接口没有需要实现...

2018-12-24 17:48:38 1335

转载 JAVA的事件委托机制和垃圾回收机制

java 事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处理这个事件,然后返回。垃圾回收机制垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收。链接:...

2018-12-24 17:46:18 1131

转载 编程输出图形

* * * * ** * * ** * ** **代码如下:public class Print {    ​public static void main(String[] args) {    ​    ​for (int i = 0; i < 5; i++) {    ​    ​    ​for (int j = 5; j > i; j--)...

2018-12-24 17:43:55 1408 1

转载 作用域 public,protected,private,以及不写时的区别?

Public:不同包、同一包、类内都可用Private:类内Protected: 不同包的子类、同一包、类内都可用不写时:同一包内、类内

2018-12-24 17:40:57 147

转载 super()与 this()的区别?

This():当前类的对象,super 父类对象。Super():在子类访问父类的成员和行为,必须受类继承规则的约束而this 他代表当前对象,当然所有的资源都可以访问.在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private 修饰).此时你必须加入对父类的实例化构造.而this 就没有这个要求,...

2018-12-24 17:28:07 659

转载 面试中遇到的final相关知识点-JavaGogo

final关键字的作用1. 被final修饰的类不可以被继承2. 被final修饰的方法不可以被重写3. 被final修饰的变量不可以被改变重点是第三句,被final修饰的变量不可以被改变,是变量的引用不可以被改变,还是变量的值,或者两者都不能被改变呢?示例:1. 创建一个测试类public class FinalStr{ private String str;

2018-01-17 16:56:20 273

转载 浅谈多态-JavaGogo

简介面向对象有四个基本特性:封装、继承、抽象、多态。其中封装、继承、抽象可以看作是多态的基础,而多态可以看作是封装、继承、抽象的表现。不同类的对象对同一方法体现出不同的功能就叫做多态。示例:接口:定义具有共同方法的接口public Interface Person { public void getSex();}实现类1:public class

2018-01-13 14:07:00 277

vc单选框的用法解析

vc单选框的使用解析,让你明白什么时候单选框被选择,选择的是哪一个单选框等等,以便更好的学习如何使用单选框

2013-08-08

文档数组来动态传递变量值

使用文档来存储编程当中变量的值,当其它类想用使用该变量,并动态取得该变量的值时,可以使用该类来进行,简化了变量的传递。

2013-08-08

VC单文档字符串的设置

使用C++对单文档内的文本进行操作,实现卡拉ok字幕效果,实现画网格功能,实现在单文档内的某个位置实现文本显示

2013-07-25

串口调试软件

串口测试软件,使用虚拟串口软件对本机串口进行连接,使用本软件进行串口间的数据发送

2013-07-05

串口测试软件

串口测试软件,使用虚拟串口软件对本机串口进行连接,使用本软件进行串口间的数据发送

2013-07-05

VC++6.0编写的MSCOMM控件串口通信

VC++6.0编写的MSCOMM控件串口通信

2013-07-04

VC窗口程序

VC窗口程序,学习VC的初学者,汇集了大量的简单代码

2013-06-18

空空如也

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

TA关注的人

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