`
文章列表
    Andoid:popwindow里嵌入webview使用报错解决方案:d.view.WindowManager$BadTokenException: Unable to add window --       //配合的webview该属性一定不能打开,否则一触屏就报错,开发中发现小米系统是       兼容的,魅族和锤子系统是不好使的。       mWebView.getSettings().setBuiltInZoomControls(true);
   装饰模式:就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象实例。    Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能。    装饰器模式的应用场景:    1、需要扩展一个类的功能;    2、动态的为一个对象增加功能,而且是动态撤销    缺点:产生过多相似的对象,不易排错。
   适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三种:类的适配器模式、对象适配器模式、接口适配器模式。     1、类的适配器:     核心思想:有一个Source类,拥有一个方法,带待适配,目标接口是Targetable,通过Adapter类,将Source的扩展到Targetable里。     Adapter类继承Source类,实现Targetable接口。     2、对象的适配器:     核心思想:只是将Adapter类作修改,这次不继承Source类,而是持有Source类的实例。     3、接口的适 ...
    原型模式虽然是创建型模式,但是与工厂模式没有关系,该模式是将一个对象作为原型,对其进行复制,克隆,产生一个和原对象类似的新对象。在java中,复制对象是通过clone()实现的。     一个原型类,只要实现了Cloneable接口,覆写clone()方法,此处clone方法可以改为任意名称,因为Cloneable接口是个空接口,可以是任意定义实现类的方法名。因此,重点就是super.clone()这句话,调用的是Object的clone()方法。        浅赋值:将一个对象赋值后,基本数据类型的变量就会重新创建,而引用类型,指向的还是原对象所指向的。     深复制:将一个对 ...
    工厂模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中进行管理,用来创建符合对象。所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。     建造者模式是将很多功能集成到一个类里,这个类可以创造出比较复杂的东西。所以与工程模式区别就是:工厂模式关注的是创建单个模式,而建造者模式则关注创建符合对象,多个部分,因此,选择工厂模式还是建造者模式,依赖情况而定。
单例模式:         单例对象是一种常用的设计模式。在java应用中,单例对象能保证在JVM中,该对象只有一个实例存在。      单例模式的好处:          1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。          2、省去了new操作符,降低了系统内存的使用频繁,减轻了GC压力。          3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统就乱了。所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。       实现步骤:         01、持有私有静态实例,防止被引用,赋值为null,目的是实 ...
    使用背景:公司访问外网限制,项目组大部分人员不能访问maven的center repository,因此在局域网里找一台有外网权限的机器,搭建nenux私服,然后开发人员连接到这台私服上。    环境:nexus-2.1.1、maven-3.04,jdk-1.6.0 一、使用admin用户登陆nexus 二、为nexus配置代理服务器       由于这台机器需要通过代理才能访问外网,所以首先要配置代理服务器,在Adminstrain->Server进行配置       配置之后,nexus才能连上center repository,如果私服所在机器可以直接上外网,则可以省略这 ...
一、为什么使用Maven?     1、解决SSH包依赖的问题?     2、公司项目目录结构不规范? 二、maven环境变量的配置:    1、下载路径:       http://apache.fayea.com/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.zip    2、首先必须安装JDK, ...
抽象工厂模式:     工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。     总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,实现Sender接口,同时做一个工厂类,实现provider接口,就是可以了,无需改动现成的代码,这样拓展性比较好。   
工厂方式模式分为三种:   1、普通工厂模式:建立一个工厂类,对实现了同一个接口的一些类进行实例的创建。   2、多个工厂方法的模式:就是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式就是提供多个工厂方法,分别创建对象。   3、静态工厂方法模式:就是将上面的多个工厂方法模式里的方法置为静态,不需要创建实例,直接调用即可。   总结:凡事出现了大量的产品需要创建,并且是具有共同的接口时,可以通过工厂方法模式进行创建,以上三种方法中,第一种如果传入了字符串有误,不能正确创建对象,第三种相对于第二种,不需要实例工厂类。所以大多数情 ...
设计模式的分类:    一、 设计模式总体分为三大类: 1、创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 2、结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 3、行为型模式(11种):策略模式,模版方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式。     二、设计模式的六大原则: 1、开闭原则        开闭原则就是对扩展开放,对修改关闭。想要达到这种效果,我们需要使用接口和抽象类。 2、里氏代换原则          里氏代换原则 ...
1、安装java环境jdk:     一般系统都会默认自带的JDK,但是不太好用,都会卸载了,然后重新安装。    1.1)、卸载:      (rpm -qa :查询已经安装哪些软件包;        rmp -q 软件包:查询指定包是否已经安装;        rpm -e 软件包:删除指定软件包。        )      rpm -qa | grep jdk    (查询jdk的信息)      jdk信息:jdk-1.6.0_31-fcs.x86_64      卸载命令:rpm -e --nodeps jdk-1.6.0_31-fcs.x86_64    1.2)、下载软件jdk ...
MyBatis传多个参数: 1、采用#{0},#{1}获得参数:    Dao层函数方法:     public User selectUser(String name,String area); 对应的Mapper.xml    <select id="selectUser" resultMap="BaseResultMap">          select * from user where user user_na ...
1、java容器的关系:      Collection    List     接口        LinkedList  链表        ArrayList   顺序结构动态数组类        Vector      向量        Stack     栈    Set    Map      HashTable      HashMap      WeakHashMap List接口 2、线程安全和线程不安全的    Vector和HashTable是线程安全的    LinkedList,ArrayList和HashMap是线程不安全的
线程安全:    如果代码所在的进程中有多个线程同时运行,而这些线程可能会同时运行这段代码。如果每次运行的结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。    servlet是多线程的,同时一个servlet实现类只会有一个实例对象,也就是说是单例,所以多个线程是可能会访问同一个servlet实例对象的。      线程安全问题都是由于全局变量及静态变量引起的。 一、servlet和struts1     通常情况下,系统只能生成servlet的单一实例之后,为每个用户请求建立新的线程。如果很多请求同时到来,那么多个线程可能会并发的访问同一个serv ...
Global site tag (gtag.js) - Google Analytics