- 博客(52)
- 资源 (25)
- 收藏
- 关注
转载 HashMap的使用和遍历
【遍历方法一】[java] view plaincopyfor(Map.Entry entry : hashmap.entrySet()){ System.out.println("Key="+entry.getKey()+"---->value="+entry.getValue().toString()) }
2015-04-30 18:30:31 807
转载 外观模式(三):抽象外观类,外观模式效果与适用场景
4. 抽象外观类 在标准的外观模式结构图中,如果需要增加、删除或更换与外观类交互的子系统类,必须修改外观类或客户端的源代码,这将违背开闭原则,因此可以通过引入抽象外观类来对系统进行改进,在一定程度上可以解决该问题。在引入抽象外观类之后,客户端可以针对抽象外观类进行编程,对于新的业务需求,不需要修改原有外观类,而对应增加一个新的具体外观类,由新的具体外观类来关联新的子系统对象,
2015-04-28 21:35:54 1893
转载 外观模式(二):外观模式应用实例(文件加密模块)
3. 外观模式应用实例 下面通过一个应用实例来进一步学习和理解外观模式。 1. 实例说明 某软件公司欲开发一个可应用于多个软件的文件加密模块,该模块可以对文件中的数据进行加密并将加密之后的数据存储在一个新文件中,具体的流程包括三个部分,分别是读取源文件、加密、保存加密之后的文件,其中,读取文件和保存文件使用流来实
2015-04-28 20:57:50 3520
转载 外观模式(一):外观模式概述,外观模式结构与实现
外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。 1. 外观模式概述 不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶叶、茶具和开水,如图1(A)所示;而去茶馆喝茶,最简单的方式就是跟茶馆服务员说想要
2015-04-28 11:03:00 2315
转载 Java并发编程:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他
2015-04-23 10:18:35 446
转载 Java反射机制
一、什么是反射机制?为什么要用反射机制?所谓Java反射机制是指,程序在运行状态时,可以加载一个运行时才得知名称的class,能够知道这个类的所有属性和方法,并生成其对象实体、或对其fields设值、或调用其方法;即利用反射技术,根据一个类名称,可以得到该类的构造方法、属性、方法等信息,并创建其对象。用一句话来概括,反射就是加载一个运行时才知道的类以及它的完整内部结构。 那我们为什么要用反
2015-04-22 15:19:26 546
转载 9本Java程序员必读的书
9本Java程序员必读的书 本文列出的9本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明,相对于其他的教程和博客,Java书籍还是很重要的参考,主要表现在以下两点: ●通常书籍是由比较权威的程序员来撰写的。 ●相比其他媒介,书籍对于内容的描述更加详细,解
2015-04-22 10:29:30 1202
转载 免费的计算机编程类中文书籍
免费的编程中文书籍索引,欢迎投稿。国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。stackoverflow 上的程序员应该阅读的非编程类书籍有哪些? 中文版github 上的一个流行的编程书籍索引 中文版参与交流欢迎大家将珍藏已久的经典免费书籍共享出来,您可以:使用 Issues 以及 Pull Request贡献者名单: http
2015-04-21 15:12:38 1446
转载 jsoup源码阅读
最近做网页分析时接触了一些 包括jsoup在内开源工具。 今天有时间读了下jsoup的源码,记录一下心得。 【特色】作为html 解析工具,jsoup 出现的时间远不如大名鼎鼎的HttpClient。但是他有一些不错的特色: 1.实现了CSS选择器语法,有了这个页面内容提取真不是一般的方便。2.解析算法不使用递归,而是enum配合状态模式遍历数据(先
2015-04-21 12:41:28 2553
转载 jsoup中文参考文档资料
jsoup中文参考文档资料http://www.open-open.com/jsoup/parsing-a-document.htm
2015-04-21 10:25:23 968
转载 使用选择器语法来查找元素
问题你想使用类似于CSS或jQuery的语法来查找和操作元素。方法可以使用Element.select(String selector) 和 Elements.select(String selector) 方法实现:File input = new File("/tmp/input.html");Document doc = Jsoup.parse(inpu
2015-04-21 09:53:19 952
转载 抽象工厂模式(五):“开闭原则”的倾斜性,抽象工厂模式总结
5 “开闭原则”的倾斜性 Sunny公司使用抽象工厂模式设计了界面皮肤库,该皮肤库可以较为方便地增加新的皮肤,但是现在遇到一个非常严重的问题:由于设计时考虑不全面,忘记为单选按钮(RadioButton)提供不同皮肤的风格化显示,导致无论选择哪种皮肤,单选按钮都显得那么“格格不入”。Sunny公司的设计人员决定向系统中增加单选按钮,但是发现原有系统居然不能够在符合“开闭原则”的
2015-04-19 21:42:20 4484
转载 抽象工厂模式(四):界面皮肤库的抽象工厂模式解决方案
4 完整解决方案 Sunny公司开发人员使用抽象工厂模式来重构界面皮肤库的设计,其基本结构如图6所示:图6 界面皮肤库结构图 在图6中,SkinFactory接口充当抽象工厂,其子类SpringSkinFactory和SummerSkinFactory充当具体工厂,接口Button、TextField和ComboBox充当抽象产品,其子类Sp
2015-04-19 21:19:48 6321 1
转载 抽象工厂模式(三):抽象工厂模式概述
3 抽象工厂模式概述 抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品。抽象工厂模式定义如下: 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模
2015-04-19 20:49:57 863
转载 抽象工厂模式(二):产品等级结构与产品族
2 产品等级结构与产品族 在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法具有唯一性,一般情况下,一个具体工厂中只有一个或者一组重载的工厂方法。但是有时候我们希望一个工厂可以提供多个产品对象,而不是单一的产品对象,如一个电器工厂,它可以生产电视机、电冰箱、空调等多种电器,而不是只生产某一种电器。为了更好地理解抽象工厂模式,我们先引入两个概念:
2015-04-19 20:21:09 8649 1
转载 抽象工厂模式(一):界面皮肤库的初始设计
工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产,这就是我们本文将要学习的抽象工厂模式的基本思想。 1 界面皮肤库的初始设计 Sunny软
2015-04-19 20:09:43 3377
转载 Linux下DHCP服务器(CentOS系统)安装和配置详解
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是进行ip地址等网络信息集中管理的服务。在局域网内部构建一台Linux主机作为DHCP服务器,并且设置其他的主机都从DHCP服务器获得主机的网络信息,这样既可以大大简化系统管理员对所有主机逐一进行网络配置的工作,也可以对IP地址实现合理的规划和分配。本文主要撰写的内容是通过DHCP进行自动网络设置,
2015-04-18 18:34:24 13594
转载 工厂方法模式(四)
5 重载的工厂方法 Sunny公司开发人员通过进一步分析,发现可以通过多种方式来初始化日志记录器,例如可以为各种日志记录器提供默认实现;还可以为数据库日志记录器提供数据库连接字符串,为文件日志记录器提供文件路径;也可以将参数封装在一个Object类型的对象中,通过Object对象将配置参数传入工厂类。此时,可以提供一组重载的工厂方法,以不同的方式对产品对象进行创建。当然,对于同
2015-04-17 16:23:47 787
转载 创建对象与使用对象——谈谈工厂的作用
在设计模式的教学和推广过程中,很多企业学员和在校学生经常问我,工厂模式(包括简单工厂模式、工厂方法模式和抽象工厂模式)到底有什么用,很多时候通过反射机制就可以很灵活地创建对象,为毛还要工厂?,在本文中我将围绕创建对象和使用对象来简单谈谈工厂的作用。 与一个对象相关的职责通常有三类:对象本身所具有的职责、创建对象的职责和使用对象的职责。对象本身的职责比较容易理解,就是对象自身所具有
2015-04-17 16:17:30 791
转载 工厂方法模式(三):日志记录器的工厂方法模式解决方案,反射与配置文件
3 完整解决方案 Sunny公司开发人员决定使用工厂方法模式来设计日志记录器,其基本结构如图3所示:图3 日志记录器结构图 在图3中,Logger接口充当抽象产品,其子类FileLogger和DatabaseLogger充当具体产品,LoggerFactory接口充当抽象工厂,其子类FileLoggerFactory和DatabaseLog
2015-04-17 15:25:17 2525 1
转载 工厂方法模式(二):工厂方法模式概述
2 工厂方法模式概述 在简单工厂模式中只提供一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它需要知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这违背了“开闭原则”。此外,在简单工厂模式中,所有的产品都由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂,具体产品
2015-04-17 14:55:49 679
转载 工厂方法模式(一):日志记录器的设计
简单工厂模式虽然简单,但存在一个很严重的问题。当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背“开闭原则”,如何实现增加新产品而不影响已有代码?工厂方法模式应运而生,本文将介绍第二种工厂模式——工厂方法模式。 1 日志记录器的设计 Sunny软件公司欲开发一个系统运行日志记
2015-04-17 14:18:48 3697
转载 XPath 语法总结
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。因此,对 XPath 的理解是很多高级 XML 应用的基础。XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节
2015-04-14 16:23:39 1098
转载 使用DOM4J解析大容量XML文件
dom4j本身提供了两种解析xml的方式:dom解析和sax解析。关于dom解析和sax解析各自的优缺点这里不再多述,只强调的一点是由于越来越多的应用会遇到大数据场景,SAX解析方式刚好是解决此类场景的完美方案,因此“DOM4J解析大数据的方案”就是"如何利用SAX方式解析大数据的方案"(当然JAXP中的sax解析也是同样的方案),本文梳理总结下实际工作中使用DOM4J解析大容量XML文件的实现。
2015-04-14 13:19:11 7553
转载 使用Dom4j操作XML总结2
使用Dom4j操作XMLDom4j也可以很方便完成XML文档的创建、元素的修改、文档的查询遍历等,但dom4j稍比jdom复杂一点,不过在大片文档的情况下dom4j的性能要不jdom好。# 准备首先,提供相关的jar包Dom4j jar包下载:http://sourceforge.net/projects/dom4j/files/dom4j-2.0.0-ALPHA-2/
2015-04-14 13:18:48 870
转载 使用Dom4j解析XML
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它. 对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的
2015-04-14 10:42:03 620
转载 java解析xml文件的四种方式
1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准(org.w3c.dom)。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优
2015-04-13 14:52:07 888
转载 简单工厂模式(四)
4 方案的改进 Sunny软件公司开发人员发现在创建具体Chart对象时,每更换一个Chart对象都需要修改客户端代码中静态工厂方法的参数,客户端代码将要重新编译,这对于客户端而言,违反了“开闭原则”,有没有一种方法能够在不修改客户端代码的前提下更换具体产品对象呢?答案是肯定的,下面将介绍一种常用的实现方式。 我们可以将静态工厂方法的参数存储在XML或pro
2015-04-12 21:46:41 748
转载 简单工厂模式(三)
3 完整解决方案 为了将Chart类的职责分离,同时将Chart对象的创建和使用分离,Sunny软件公司开发人员决定使用简单工厂模式对图表库进行重构,重构后的结构如图2所示:图2 图表库结构图 在图2中,Chart接口(实际开发一般选择抽象类)充当抽象产品类,其子类HistogramChart、PieChart和LineChart充当具体产品
2015-04-12 21:33:58 720
转载 简单工厂模式(二)
2 简单工厂模式概述 简单工厂模式并不属于GoF 23个经典设计模式,但通常将它作为学习其他工厂模式的基础,它的设计思想很简单,其基本流程如下: 首先将需要创建的各种不同对象(例如各种不同的Chart对象)的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类都是抽象产品类的子类;然后提供
2015-04-12 21:08:45 483
转载 简单工厂模式(一)
工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂模式是指工厂方法模式,它也是使用频率最高的工厂模式。本章将要学习的简单工厂模式是工厂方法模式的“小弟”,它不属于GoF 23种设计模式,但在软件开发中应用也较为频繁,通常将它作为学习其他工厂模式的入门。此外,工厂方法模式还有一位“大哥”——抽象工厂模式。这三种工厂模式各具特色,难度也逐个加大,在软件开发中它们都得到了广泛的应用,成为面向对
2015-04-12 21:00:21 762
转载 Visual Representation of SQL Joins
IntroductionThis is just a simple article visually explaining SQL JOINs.Using the codeI am going to discuss seven different ways you can return data from two relational tables. I will be e
2015-04-12 20:00:17 549
转载 Mysql中where与having的区别
1. Where 是一个约束声明,使用Where约束来自数据库的数据,Where是在结果返回之前起作用的,Where中不能使用聚合函数。2. Having是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行。而where子句在查询过程中执行优先级高于聚合语
2015-04-12 19:23:45 4957 1
转载 Servlet 3.0 新特性概述(3.1待总结)
Servlet 3.0 新特性概述Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布。该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署。其中有几项特性的引入让开发者感到非常兴奋,同时也获得了 Java 社区的一片赞誉之声:异步处理支持:有了该特性,Servlet 线程不再需
2015-04-11 19:39:27 1057
原创 Servlet3.1使用@WebServlet注解配置问题记录
@WebServlet 该注解用于在Web应用中定义Servlet组件。该注解在一个类上指定并包含声明Servlet的元数据。必须指定注解的urlPatterns或value属性。所有其他属性是可选的默认设置(请参考javadoc获取更多细节)。当注解上唯一属性是url模式时推荐使用value且当也有使用其他属性时使用urlPatterns属性。在同一注解上同时使用value 和u
2015-04-11 19:08:27 4158
转载 HTTP请求格式和http响应格式
当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:l 请求方法URI协议/版本l 请求头(Request Header)l 请求正文下面是一个HTTP请求的例子:GET/sample.jspHTTP/1.1Accept:image/gif.image/jpeg,*/*Accept-Langua
2015-04-11 13:39:24 758
转载 单例模式(5)- Java单例对象同步问题深入探讨
原文地址:http://www.ibm.com/developerworks/cn/java/l-singleton/#icomments单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。正是由于这个特点,单例对象通常作为程序中的存放配置信息的载体,因为它能保证其他对象读到一致的信息。例如在某个服务器程序
2015-04-10 15:23:53 715
转载 JVM类加载-从ClassLoader源码看双亲委托模型
其实JVM类加载机制,简单地说就是类管理,也就是我们生成的class文件。三个步骤:装载(load)、链接(link)、解析(Resolve)、还有初始化(Initialize)关于网上有很多讲解加载的方式,和调用的方式,还是几个基本的classLoader,这里就不在多描述了。这里更多的是从源码上来讲解,达到理论结合实际。首先是ClassLoader这个抽象类,这个是实现自定义类
2015-04-10 14:53:04 1803
转载 单例模式总结
6 单例模式总结 单例模式作为一种目标明确、结构简单、理解容易的设计模式,在软件开发中使用频率相当高,在很多应用软件和框架中都得以广泛应用。 1.主要优点 单例模式的主要优点如下: (1) 单例模式提供了对唯一实例的受控访问。因为单例类封装了它的唯一实例,所以它可以严格控制客户怎样以及何时访问它。 (2
2015-04-09 21:30:36 708
转载 单例模式(4)- 一种更好的单例实现方法
5 一种更好的单例实现方法 饿汉式单例类不能实现延迟加载,不管将来用不用始终占据内存;懒汉式单例类线程安全控制烦琐,而且性能受影响。可见,无论是饿汉式单例还是懒汉式单例都存在这样那样的问题,有没有一种方法,能够将两种单例的缺点都克服,而将两者的优点合二为一呢?答案是:Yes!下面我们来学习这种更好的被称之为Initialization Demand Holder (IoDH
2015-04-09 21:17:55 826
我国网上零售市场现状及影响因素研究
2022-07-04
基于主成分分析的江苏省城市竞争力研究
2022-07-04
智能医学平台创业商业计划书
2022-07-01
研究资讯 _ 应用视角 _ 人工智能在医学影像领域的应用
2022-06-29
北邮-计算机软件基础实验-全套 Python 代码
2022-06-21
SE305 数据库技术-Database System Technology-全套 PPT 课件-作业
2022-06-21
EI374 高级算法-全套 PPT 课件-笔记
2022-06-21
EI339 人工智能-ARTIFICIAL INTELLIGENCE-全套 PPT 课件
2022-06-21
EI338 计算机系统工程-Computer Systems Engineering-全套 PPT 课件
2022-06-21
EI333 软件工程-Software Engineering-全套 PPT 课件
2022-06-21
EI332计算机组成原理-Computer Organization and Application-全套 PPT课件
2022-06-21
EI331 信号与系统-Signals and Systems-全套 PPT 课件
2022-06-21
CS385 机器学习-全套 PPT 课件-作业
2022-06-21
CS258 信息论-Information Theory-全套 PPT 课件
2022-06-21
CS222 算法分析与设计-ALGORITHM DESIGN AND ANALYSIS-全套 PPT 课件
2022-06-21
CS221 数据结构-全套 PPT 课件
2022-06-21
CS125 程序设计-程序设计思想与方法-全套PPT
2022-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人