java
Half0pen
个人简介
展开
-
java Socket
Socket Sendimport java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.util.Scanner;/* * 通过udp转输方式,将一段文字数据发送出去 * 1.建立udpsocket服务 * 2.提供数据,并将数据封装到数据包中转载 2015-01-26 09:03:57 · 741 阅读 · 0 评论 -
8、代理模式(Proxy)
其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。转载 2016-10-17 13:41:04 · 7315 阅读 · 1 评论 -
9、外观模式(Facade)
外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口转载 2016-10-17 13:51:57 · 7283 阅读 · 0 评论 -
10、桥接模式(Bridge)
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。转载 2016-10-17 15:18:36 · 7241 阅读 · 0 评论 -
11、组合模式(Composite)
组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便转载 2016-10-17 15:33:41 · 7206 阅读 · 0 评论 -
12、享元模式(Flyweight)
享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。转载 2016-10-17 15:37:20 · 7092 阅读 · 0 评论 -
13、策略模式(strategy)
接下来讲解行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。先来张图,看看这11中模式的关系:第一类:通过父类与子类的关系进行实现。第二类:两个类之间。第三类:类的状态。第四类:通过中间类策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户转载 2016-10-17 16:16:48 · 7389 阅读 · 0 评论 -
java 反射
java 反射 http://www.imooc.com/learn/199java 反射Class类的使用动态加载类获取方法信息基本的数据类型void关键字等都存在类类型Class类的基本API操作的Method类提供了一些操作方法的方法获取成员变量构造函数信息方法反射的基本操作获取A类中的printintint方法方法的反射操作通过反射了解集合泛型的本质Class类原创 2016-10-08 10:31:54 · 7332 阅读 · 0 评论 -
全面解析Java注解
全面解析Java注解 http://www.imooc.com/video/8861概述Annotation(注解)是JDK1.5及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射原创 2016-10-08 16:46:52 · 7318 阅读 · 0 评论 -
14、模板方法模式(Template Method)
解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1…n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用.转载 2016-10-19 09:36:45 · 7744 阅读 · 0 评论 -
18、命令模式(Command)
命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。转载 2016-10-26 15:06:53 · 762 阅读 · 0 评论 -
20、状态模式(State)
核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。看图:State类是个状态类,Context类可以实现切换,我们来看看代码:package com.xtfggef.dp.state; /**转载 2016-12-07 10:48:37 · 355 阅读 · 0 评论 -
21、访问者模式(Visitor)
访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。因为访问者模式使得算法操作增加变得容易。若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。访问者模式将有关行为集中到一个访问者对象中,其改变不影响系统数据结构。其缺点就是增加转载 2016-12-09 10:57:46 · 457 阅读 · 1 评论 -
22、中介者模式(Mediator)
中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。如果使用中介者模式,只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行,这有点像spring容器的作用。先看看图: User类统一接口,User1和User2分别是不同的对象,二者之间有关联,如果不采用中介者模式,则需要转载 2016-12-09 11:05:52 · 355 阅读 · 0 评论 -
23、解释器模式(Interpreter)
解释器模式是我们暂时的最后一讲,一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。Context类是一个上下文环境类,Plus和Minus分别是用来计算的实现,代码如下:public interface Expression { public int interpret(Context context); } public class Plus implements E转载 2016-12-09 11:09:07 · 326 阅读 · 0 评论 -
设计模式
设计模式(Design Patterns) 可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。转载 2016-10-13 11:58:41 · 7729 阅读 · 0 评论 -
19、备忘录模式(Memento)
主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态,类C呢,就是一个用来存储备忘录的,且只能存储,不能修改等操作。做个图来分析一下:Original类是原始类,里面有需要保存的属性value及创建一个备忘录类,用来保存value值。Memento类是备忘录类转载 2016-12-07 10:06:55 · 342 阅读 · 0 评论 -
java多线程交替打印数字和字母
题目:1.开启两个线程,一个线程打印A~Z,另一个线程打印1~52的数据。2.实现交替打印,输出结果为12A34B………..5152Z.3.请用多线程方式实现。使用阻塞队列实现class NumberPrinter extends Thread{ private BlockingQueue<String> bp; public NumberPrinter(BlockingQueue<原创 2017-11-07 16:12:07 · 4680 阅读 · 2 评论 -
7、装饰模式(Decorator)
顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例转载 2016-10-17 10:13:23 · 7283 阅读 · 0 评论 -
使用java绘制希尔伯特曲线(hilbert curve)
绘制希尔伯特曲线 Hilbert Curve转载 2016-10-26 11:58:46 · 3311 阅读 · 1 评论 -
java编程大题
设计4个线程,线程1每次对整数j增加1,线程2将j 数据写入文件“file.dat”中,线程3每次对整数j减少1,线程4 将文件“file.dat”中数据值为j的数据删除。写出程序。package 多线程;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.原创 2015-06-21 10:04:11 · 999 阅读 · 0 评论 -
java System.out.println()
a=10,b=2,c=8,s="abc"a+b+s+c+a: 12abc810a+b+s+(c+a): 12abc18a+(b+s)+c+a 102abc810原创 2015-05-23 17:03:18 · 565 阅读 · 0 评论 -
java初始化顺序
原创 2015-05-25 16:36:27 · 625 阅读 · 0 评论 -
java成员内部类、局部内部类、静态内部类和匿名内部类
Java 内部类 分四种:成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类: 即作为外部类的一个成员存在,与外部类的属性、方法并列。注意:成员内部类中不能定义静态变量,但可以访问外部类的所有成员。public class Outer{private static int i = 1;private int j=10;private int k=20;public s转载 2015-06-14 19:11:24 · 694 阅读 · 0 评论 -
java内部类的作用
推荐一、 定义放在一个类的内部的类我们就叫内部类。二、 作用1.内部类可以很好的实现隐藏 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以2.内部类拥有外围类的所有元素的访问权限3.可是实现多重继承4.可以避免修改接口而实现同一个类中两种同名方法的调用。三、 例子1.实现隐藏转载 2015-06-14 19:05:42 · 874 阅读 · 0 评论 -
声明父类,new子类--java和c#的区别
c#和java 声明父类,new子类的不同原创 2016-06-09 18:51:42 · 8262 阅读 · 1 评论 -
at com.sun.proxy.$Proxy5.createQuery(Unknown Source)
java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy5.createQuery(Unknown Source)java.lang.NoSuchMethodError: antlr.collections.AST.getLine()原创 2016-10-11 23:42:38 · 35435 阅读 · 3 评论 -
Could not load requested class : com.mysql.jdbc.Driver
问题描述在已经添加驱动包mysql-connector-java-5.1.5-bin.jar的情况下,unitTest通过,但是运行仍然提示Could not load requested class : com.mysql.jdbc.Driver解决方法mysql-connector-java-5.1.5-bin.jar放到“WEB-INF/lib”目录下,即可解决上述问题。原创 2016-10-11 23:25:25 · 9239 阅读 · 0 评论 -
16、迭代子模式(Iterator)
顾名思义,迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。转载 2016-10-21 20:25:19 · 3126 阅读 · 0 评论 -
15、观察者模式(Observer)
包括这个模式在内的接下来的四个模式,都是类和类之间的关系,不涉及到继承,学的时候应该 记得归纳,记得本文最开始的那个图。观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系。转载 2016-10-21 20:21:36 · 2696 阅读 · 0 评论 -
1、工厂方法模式(Factory Method)
工厂方法模式工厂方法模式分为三种:1、普通工厂模式就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。2、多个工厂方法模式,是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象。3、静态工厂方法模式,将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。转载 2016-10-13 22:45:02 · 7689 阅读 · 0 评论 -
2、抽象工厂模式(Abstract Factory)
抽象工厂模式工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。 所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。转载 2016-10-13 22:56:50 · 7292 阅读 · 0 评论 -
4、建造者模式(Builder)
工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。转载 2016-10-14 09:46:51 · 7413 阅读 · 0 评论 -
5、原型模式(Prototype)
原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。转载 2016-10-14 09:57:07 · 7383 阅读 · 0 评论 -
3、单例模式(Singleton )
单例对象单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。 在hibernate中的HibernateSessionFactory便应用了单例模式 这样的模式有几个好处:某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。省去了new操作符,降低了系统内存的使用频率,减轻GC压力。转载 2016-10-14 09:18:47 · 7395 阅读 · 0 评论 -
6、适配器模式(Adapter)
适配器模式我们接着讨论设计模式,上篇文章我讲完了5种创建型模式,这章开始,我将讲下7种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中对象的适配器模式是各种模式的起源,我们看下面的图:主要分为三类:类的适配器模式对象的适配器模式接口的适配器模式。转载 2016-10-16 10:37:10 · 7258 阅读 · 0 评论 -
17、责任链模式(Chain of Responsibility)
接下来我们将要谈谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求. 所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。转载 2016-10-26 11:39:54 · 583 阅读 · 0 评论 -
java接口中的变量
java接口中的变量默认是public static final类型的摘自百度 1、接口必须要具体类实现才有意义,所以必须是public 2.、接口中的数据对所有实现类只有一份,所以是static 3、要使实现类为了向上转型成功,所以必须是final的,比如接口A,A有变量value.实现类A1,A2,可以向上转型.interface Singer{ public int原创 2017-10-16 22:09:33 · 8282 阅读 · 0 评论