- 浏览: 101660 次
- 性别:
- 来自: 长沙
最新评论
-
xinglu:
大哥,你把这个工程的Web Deployment Assemb ...
Eclipse中Maven项目无法在Tomcat中运行 -
qiuq86:
很有用,谢谢,看到了一些之前没用到过的技巧
Freemarker一些常用知识 -
newspringwork:
1.JSP不通过struts2的filter是最好,但是“Th ...
Struts2一直返回input页面 -
lg_asus:
刚才没说清,spring管理Action,我的Action是用 ...
Struts2一直返回input页面 -
lg_asus:
第1个问题,不建议jsp也走struts2 filter。一直 ...
Struts2一直返回input页面
文章列表
一、XML常见解析方式
常见解析XML的方法主要有DOM和SAX
1.DOM解析方式-基于文档树
DOM,即文档对象模型(Document Object Model),将XML文档解析成树状模型并将其放入内存来完成解析工作的,而后对文档的操作都是在这个树状模型上完成的。这个在内存中的文档树将是文档实际大小的几倍。
2.SAX解析方式-事件驱动
即XML简单应用程序接口-Simple API for XML,通读整个文档,根据文档内容产生事件,而把对这些事件的处理交由事件处理器处理。
3.DOM与SAX解析方式的对比
SAX
DOM
顺序读入文档并产生相应事件,可以处 ...
1.maven引入jdom2
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.6</version>
</dependency>
2.实例
import java.io.FileOutputStream;
import java.util.List;
import org.apache.logging.log4j.LogMana ...
一、简介
1.定义
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
2.相关角色
Builder:生成器接口,定义创建Product所需各个部件方法的接口
ConcreteBuilder:具体生成器的实现,实现各个部件的创建,并负责组装Product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法
Director:指导者,主要用来使用Builder接口,以一个统一的过程来创建所需要的Product对象
Product:产品,表示被生成器构建的复杂对象,包含多个部件
如果ConcreteBuilder只有创建对象功能,而没有组装的功 ...
一、简介
1. 定义
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
2.特点
抽象工厂的方法输出的对象都是相关或相互依赖的
一般实现称为接口
通常结合工厂方法提供具体的实现
3.相关角色
抽象工厂:创建一系列相关或相互依赖对象的接口
具体工厂:提供抽象工厂接口具体实现
产品:抽象工厂的产出
客户端:使用抽象工厂的对象
4.何时使用?
只关心使用,而不关心实现时(面向接口)
可能需要动态的切换产品簇的时候
强调一系列相关产品,以便联合使用它们时
二、实例
首先定义一个CPU和主板的接口
/**
* CPU接口
...
一、简介
1.定义
定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到其子类。
2.结构图
Product:工厂方法所创建对象的接口,即实际使用对象的接口
ConcreteProduct:具体的Product接口的实现对象
Creator:申明工厂方法
ConcreteCreator:具体的创建器对象,覆盖实现Creator定义的工厂方法,返回具体的Product实例
二、Java实现
1.实例
public interface AudiProducer {
public boolean prod ...
一、简介
1.定义
保证一个类仅有一个实例,并提供一个获取实例的全局访问点(方法|入口)。
2.什么时候用?
顾名思义,我们需要系统中只存在一个实例对象时使用,注意如果同时实现了原型模式,可能会破坏单例。
二、Java实现
1.懒汉模式&饿汉模式
懒汉模式:只有在调用单例模式类提供的入口方法时才实例化对象(这种模式下,只要调用到了该类的静态方法,不管是不是要获取实例,这个单例对象也会被创建)
饿汉模式:未调用单例类的入口方法就已经实例化了对象,不管后面有没有用(像饿汉一样迫不及待 O(∩_∩)O哈哈~)
2.实例
假设我们有一个系统配置类对象,希望整个 ...
一、简介
1.定义
一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例,其中被复制的实例就是我们所称的原型。
原型模式的本质:克隆生成对象。
2.什么时候用?
使用原型模式创建对象比直接new一个对象在性能上要好的多,因为Object类的clone方法是一个本地方法,它直接操作内存中的二进制流,特别是复制大对象时,性能的差别非常明显。
使用原型模式的另一个好处是简化对象的创建,使得创建对象就像我们在编辑文档时的复制粘贴一样简单。
因为以上优点,所以在需要重复地创建相似对象时可以考虑使用原型模式。比如需要在一个循环体内创建对象,假如对象创建过程比较 ...
一、简介
分析器是solr中一个很重要的组件,在建立索引、搜索出想要的结果时,发挥了非常大的作用,这是solr已经定义好的一段包含分析器的fieldType示例
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory&qu ...
第二章、Solr各配置文件说明
- 博客分类:
- Solr
一、schema配置文件(schema.xml或managed-schema)
下面这里先贴一段schema.xml配置示例,后面会围绕此示例讲解
<?xml version="1.0" encoding="UTF-8"?>
<schema name="example-data-driven-schema" version="1.6">
<!-- 主键 -->
<uniqueKey>id</uniqueKey>
<!- ...
第六章. Java调用Solr
- 博客分类:
- Solr
1. 引入相关Jar包
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>6.5.0</version>
</dependency>
<!-- 测试代码用到,不需要可不加 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifac ...
第五章、Solr搜索常用参数说明
- 博客分类:
- Solr
1. 常用参数说明
q - 查询字符串,这个是必须的。如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京)
fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=Name:张三&fq=CreateDate:[ ...
一、简介
1.Java集合框架
在Java中有一套设计优良的接口和类组成了Java集合框架,使程序员操作成批的数据或对象元素极为方便。所有的Java集合都在java.util包中。
Collection接口,这个集合接口体系下主要包括List、Set、Queue接口,主要实现类有Vector、ArrayList、LinkedList、HashSet、TreeSet等
Map接口,这个集合接口主要是以key-value形式存储,key不能重复,value可以重复,主要的实现类有HashMap、TreeMap等
util包中还提供了集合工具类Collections & 数组工 ...
一、线程的生命周期
线程的生命周期大致分为下面几种
1.新建状态
一个线程对象创建后,该线程就处于新建状态,处于新生状态的线程有自己的内存空间。
2.就绪状态
新建状态的线程通过start()进入就绪状态。
处于就 ...
1.线程简介
线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏
2.锁的原理
Java中每个对象都有一个内置锁。
当程序运行到非静态的synchronized同步方法上时,自动获得与正在执行代码类的当前实例(thi ...
最近在看一些代码优化相关的东西,下午看到排序这块,常用的排序方式有冒泡排序、选择排序、快速排序等,这里记录下这三种排序的Java实现。最后附有2个测试这几种排序方式的时间的代码
一、几种常用排序方式介绍
1.冒泡排序
以升序排序为例,将序列看成一排竖着的气泡,最后一个元素与倒数第二个元素进行比较,小的往前移,再将倒数第二个元素与倒数第三个元素比较,依次类推,第一轮比较后,最小的就到了位置1,同样第二轮比较后第二小的到了位置二~
#PopSortDemo.java
/**
* 冒泡排序
*
* @author admin
*
*/
public clas ...