自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

5431的专栏

fk5431.com

  • 博客(24)
  • 资源 (40)
  • 收藏
  • 关注

原创 归并排序

归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。讲已有有序的子序列合并,得到完全有序的序列:即先使每个子序列有序,再使子序列段间有序。归并操作的工作原理(将二个有序数列合并):第一步:申请空间,使其大小为已经排序序列之和,该空间用来存放合并后的序列。第二步:设定两个指针,最初为之分,最初位置分别为两个已经排序序列的起始位置。第三步:比较两个指

2015-04-28 11:26:44 760

原创 插入排序

插入排序        有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数

2015-04-23 20:15:52 981

原创 数据结构队列及其用法(C语言实现)

一、对列的定义队列是一种特殊的线性表,它的特殊之处在于它只允许在表的前端进行删除操作,在表的后端进行插入操作,像栈一样,队列也是一种操作受限的线性表。进行插入操作端称为队尾,进行删除操作端称为队首。在一个队列中插入一个队列元素称为入队,在队列中产出一个队列元素称为出队。二、队列的特点队列只允许在一段插入,在另一端删除,所以只有最早进入对列的才能最先从队列中删

2015-04-22 20:44:11 1456

原创 数据结构栈及其用法(C语言实现)

一、栈的定义栈是限定仅在表尾进行插入或删除操作的线性表。一次对栈来说,表尾端有其特殊的含义,称为栈顶,相应的,表头端成为栈底。不含元素的空表称为空栈。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。二、栈的特点栈作为一种数据结构

2015-04-22 16:52:07 1581

原创 static之面向对象

一、静态数据成员在类的数据成员声明前加上关键词是static,那么该数据成员就成为了类内的静态数据成员,我们看一个例子:#includeusing namespace std;class Point{private: int x, y; static int num; //声明静态数据成员public: Point() {

2015-04-19 14:41:11 1007

原创 static之面向过程中的理解

static的作用1、隐藏2、static的第二个作用是保持变量内容的持久3、默认初始化

2015-04-18 16:08:26 1017

原创 双向链表及其用法

一、双向链表的定义二、双向链表的存储结构三、双向链表的实现与操作

2015-04-17 00:39:08 11286 5

原创 有关优先对列的题——UVA12100 - Printer Queue

原题如下:The only printer in the computer science students'union is experiencing an extremely heavy workload.Sometimes there are a hundred jobs in the printerqueue and you may have to wait for hours t

2015-04-15 23:50:36 1248

原创 循环链表之简介

循环链表是另一种形式的链表,他的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。由此,从表中任一结点出发均可找到表中其他节点。循环链表的结构图如下:循环链表的操作和之前的写过的单链表的操作是基本一致的,所以我就不再给出详细的代码,我来说说它们之间的不同:循环链表与单链表的差别在于算法之中的循环条件不是p或者p->next 是否为空,而变成了它们是否等于头指针。循环链表

2015-04-15 19:43:03 1312

原创 单链表及其用法

一、链表的定义链表是一种物理存储单元上非连续、非顺序的存储结,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表是由一系列结点组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域。二、链表的存储结构链表的存储结构是链式存储,链式存储的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以

2015-04-15 16:41:00 1132

原创 顺序表及其用法

一、顺序表的定义顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续存储单元依次存储数据元素的线性结构。线性表才用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。二、顺序表的存储结构将表中元素一个接一个的存入一组连续的存储单元中,这种存储结构是顺序结构,顺序表采用的便是顺序结构。在顺序结构中,假设每个元素占用的空间

2015-04-14 23:17:06 1347

转载 C++this 指针用法详解

1. this指针的用处:  一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。   例如

2015-04-14 23:11:37 1104

转载 你并没有那么去努力 所以你不能怪生活

美国哈佛大学图书馆凌晨4点座无虚席——哈佛,看一眼就会明白中国缺什么日前,两张美国哈佛大学图书馆凌晨4点多学生仍在学习的照片,在网上迅速传播。照片显示:凌晨4点的哈佛大学图书馆里,灯火通明,座无虚席……图片配文这样写道:哈佛是一种象征。人到底有怎样的发挥潜力?人的意志,人的才情,人的理想,为什么在哈佛能兑现?哈佛的学生餐厅,很难听到说话的声音,每个学生端

2015-04-14 17:00:48 1467

原创 函数重载的理解

一、介绍我们引进重载函数之后不但可以省去我们为实现同一个功能的函数去很多个名字的麻烦,而且可以方便我们实例化不同的对象,在C++中还可以通过重新定义运算符(也就是我之前写过的运算符的重载),使它能够用于特定类的对象执行特定的功能,这增强了C++语言的扩充能力。二、什么是重载函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常

2015-04-14 00:40:18 1390

原创 内联函数的理解

一、内联函数的定义(来自百科)内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内敛函数,需要看编译器对该函数定义的具体处理。对于能否形成内联函数,在C++ primer 中有说过 :内敛说明只是向编译器发

2015-04-13 11:46:28 1152 1

原创 c语言之猜数字的小游戏

突然想起在刚学C语言的时候变想做出一个可以玩耍的游戏,但是当时都没有了解图形库的概念,在网上闲逛便发现了有人做了一个猜数字的游戏,我当时也跟的写了一个,基本都差不多。想想也是好久以前的东西了,直接贴代码把,大家多多指导。#include#include#includeint NUM[4], PAER_NUM[4];void begin(void);void start(void);

2015-04-12 14:58:18 1668

原创 运算符重载

运算符重载的目的就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。在C++ 预定义的运算符中,它们只适用于基本数据类型。但是对于我们经常会自己定义一些数据类型(类),我们也同样希望它们可以进行类似的操作,这时候我们就需要对运算符进行重载。运算符重载的实质其实是函数重载,它是C++最吸引人的特性之一。1.运算符重载的定义:运算符重载是通过创建运算符函数实现的,运算符

2015-04-12 00:36:59 1227

转载 【C/C++和指针】著名的《const的思考》

1、什么是const?常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)2、为什么引入const?  const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3、cons有什么主要的作用?(1)可以定义const常量,具有不可变性。例如:const int Max=

2015-04-12 00:23:23 1008

原创 优先队列 priority_queue

普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (largest-in,first-out)的行为特征。优先队列是0个或多个元素的集合,每个元素都有一个优先权或值,对优先队列执行的操作有1) 查找;2) 插入一个新元素; (复杂度是O(log2n))

2015-04-11 16:26:04 906

原创 C++中的排序

在C++ stl中带有 排序的函数,头文件是#includesort 函数有默认的三个参数(1) 第一个参数是要排序的数组的起始地址。(2) 第二个参数是要排序的结束的地址。(3) 第三个参数是排序的方法,可以从小到大也可以从大到小,如果没写,默认是升序排列。#include#includeusing namespace std;int main(){ int

2015-04-11 15:50:54 1118

原创 DrawText

DrawText 在指定的区域中输出格式化的文本 是一个高级输出的函数函数原型:int DrawText(  HDC hDC,  LPCTSTR lpString,  int nCount,  LPRECT lpRect,  UNIT uFormat);    hDC是设备上下文句柄。lpString指向将要绘制的UNICOD

2015-04-09 23:58:19 1119

原创 拼图游戏

从学习windows 开始 懂得一点点东西就按耐不住自己的好奇心想做出第一个属于自己的游戏。再网上也看了看别人的成果,因为自己也是刚开始学习,所以决定模仿一个拼图游戏。一下是自己 参考 后 写出的代码用了人家的一个随机洗牌的算法,但是发现一个问题,有时候会发生拼图无法拼出的情况,这个问题暂时还没有进行改进/* file: 拼图游戏 author: 1050577129

2015-04-08 15:28:38 1145

转载 windows的消息机制

Windows操作系统最大的特点就是其图形化的操作界面,其图形化界面是建立在其消息处理机制这个基础之上的。如果不理解Windows消息处理机制,肯定无法深入的理解Windows编程。可惜很多程序员对Windows消息只是略有所闻,对其使用知之甚少,更不了解其内部实现原理,本文试着一步一步向大家披露我理解的Windows消息机制。可以说,掌握了这一部分知识,就是掌握了Windows编程中的神兵利器,

2015-04-08 15:27:33 594

转载 windows API SDK

1.本文编写目的    本文是为了帮助一些人弄清一些关于Windows API, C运行时程序库(CRT), 和标准C++库(STL)的基本概念。有很多人甚至是有经验的程序员在这些概念上是含糊不清的甚至是有错误观点。如果你想知道他们是在什么基础上实现的并 且一直没时间弄清楚这些概念,请花费点时间阅读下本文。2. 基本概念   下面这幅图代表了WinAPI、CRT和STL三者之间的关系。

2015-04-08 15:22:44 791

commons-dbcp jar包

commons-dbcp spring开发的必备jar包

2016-02-29

mysql-connector-java-5.6-bin.jar

mysql-connector-java-5.6-bin.jar

2016-02-19

MySQL_5.1_zh.chm

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

2016-02-18

Linux培训资料

Linux 的基本操作 1、命令行操作及常用命令使用 2、文件查看/编辑方法介绍 3、网络配置及操作 4、常用使用技巧

2016-02-15

JSTL需要的jar包.rar

JSP 标准标签库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问. 如果要使用JSTL,则必须将standard-1.1.2.jar和 jstl-1.2.jar文件放到classpath中

2016-02-14

java Servlet

java servlet development kit 2.3 documentation by F.Alimant

2016-02-03

dom4j-1.6.1.jar

dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。

2016-01-26

DTD的chmd教程

DTD教程 如果打开显示取消导航页 右键属性解除锁定 即可查看

2016-01-25

十天学会DIV+CSS

本教程只讲解一些基础知识,让您从原来的表格布局跨入到web标准(div+css)布局,会使用web标准制作出常见的页面

2016-01-24

JAVA API文档6.0中文

java的API文档 版本 是java6.0 语言是中文的

2016-01-24

commons-logging.jar

java.lang.ClassNotFoundException:org.apache.commons.logging.LogFactory 现在免费提供这个包 希望对大家有用

2016-01-22

commons-beanutils-1.8.0

commons-beanutils-1.8.0的jar包 有需要的下

2016-01-22

算法技术手册

《算法技术手册》内容简介:开发健壮的软件需要高效的算法,然后程序员们往往直至问题发生之时,才会去求助于算法。《算法技术手册》讲解了许多现有的算法,可用于解决各种问题。通过阅读它,可以使您学会如何选择和实现正确的算法,来达成自己的目标。另外,书中的数学深浅适中,足够使您可以了解并分析算法的性能。, 较之理论而言,《算法技术手册》更专注于应用。《算法技术手册》提供了高效的代码解决方案,使用多种语言进行编写,让您可以轻松地将其应用于特定的工程当中。通过《算法技术手册》,您可以:, · 解决特定代码的问题,或者提升既有解决方案的性能, · 快速找到与您所解决的问题相关的算法,并决定哪个算法才是最适合的那一个, · 探索使用C、C++、Java以及Ruby实现的算法解决方案以及开发小贴士, · 了解算法预期的性能,以及它达到最高性能时所需要的条件, · 发现不同算法之间相似的设计哲学, · 学习高级数据结构,来提升算法的性能, 通过《算法技术手册》,您能学到如何提升算法的性能,这将是您的软件应用程序走向成功的关键。

2016-01-20

java核心技术卷1

CayS.Horstmann等编著,公飞编译的《Java核心技术》(CoreJava)自第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是Java经典书籍。第8版针对JavaSE6平台进行了全面更新,囊括了Java平台标准版(JavaSE/J2SE)的全部基础知识,提供了大量完整且具有实际意义的应用实例,详细介绍了Java语言基础知识、面向对象程序设计、接口与内部类、事件监听器模型、swing图形用户界面程序设计、打包应用程序、异常处理、登录与调试、泛型程序设计、集合框架、多线程等内容。

2016-01-20

简单聊天工具

对于socket和多线程应用 实现在本机上模拟聊天程序的运行

2015-12-26

java坦克大战游戏

面向对象的思想写的坦克大战的游戏 简单的模拟 敌人的坦克 自己的坦克 还有血条 子弹 这些都有贴图 加了两个障碍物的模拟 操作 上下左右 Ctrl可以发射子弹 A可以发射超强子弹

2015-12-24

贪吃蛇游戏

面向对象的思想写的一个贪吃蛇的小示例,有四个文件,蛇的,地图的,蛋的,还有一个枚举文件

2015-12-17

山东科技大学万年历实训源码

闹钟 整点报时 备忘录 换肤 转到指定日期 最小化 总是在前 日历显示 可以更改系统时间 基本功能没有问题 扩展功能也很全

2015-11-22

Maven权威指南(中文)

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。 Maven的官方站点是:http://maven.apache.org/

2017-10-09

设计模式解析(第二版)

第1章 面向对象范型 2 1.1 概览 2 1.2 面向对象范型之前:功能分解 2 1.3 需求问题 4 1.4 应对变化:使用功能分解 5 1.5 应对需求变更 7 1.6 面向对象范型 10 1.7 面向对象程序设计实践 15 1.8 特殊对象方法 17 1.9 小结 18 复习题 19 简答题 19 阐述题 20 观点与应用题 20 第2章 UML 21 2.1 概览 21 2.2 什么是UML 21 2.3 为什么使用UML 22 2.4 类图 22 2.5 交互图 28 2.6 小结 30 复习题 30 简答题 30 阐述题 30 观点与应用题 30 第二部分 传统面向对象设计的局限 第3章 对代码灵活性要求很高的问题 33 3.1 概览 33 3.2 提取CAD/CAM系统的信息 33 3.3 了解专业术语 34 3.4 问题描述 35 3.5 挑战及其解决方案 37 3.6 小结 39 复习题 40 简答题 40 阐述题 40 观点与应用题 40 第4章 标准的面向对象解决方案 41 4.1 概览 41 4.2 作为特例来解决 41 4.3 小结 48 复习题 48 简答题 48 阐述题 49 观点与应用题 49 第三部分 设计模式 第5章 设计模式简介 53 5.1 概览 53 5.2 设计模式源自建筑学和人类学 53 5.3 从建筑模式到软件设计模式 57 5.4 为什么学习设计模式 58 5.5 学习设计模式的其他好处 62 5.6 小结 63 复习题 63 简答题 63 阐述题 64 观点与应用题 64 第6章 Facade模式 65 6.1 概览 65 6.2 Facade模式简介 65 6.3 学习Facade模式 65 6.4 实践注记:Facade模式 68 6.5 Facade模式与CAD/CAM问题的联系 69 6.6 小结 70 复习题 70 简答题 70 阐述题 70 观点与应用题 71 第7章 Adapter模式 72 7.1 概览 72 7.2 Adapter模式简介 72 7.3 学习Adapter模式 73 7.4 实践注记:Adapter模式 77 7.5 Adapter模式与CAD/CAM问题的联系 80 7.6 小结 80 复习题 80 简答题 80 阐述题 81 观点与应用题 81 第8章 开拓视野 82 8.1 概览 82 8.2 对象:传统看法与新看法 83 8.3 封装:传统看法与新看法 84 8.4 发现变化并将其封装 87 8.5 共性和可变性分析与抽象类 90 8.6 敏捷编程的品质 92 8.7 小结 95 复习题 96 简答题 96 阐述题 96 观点与应用题 97 第9章 Strategy模式 98 9.1 概览 98 9.2 处理新需求的一种途径 98 9.3 国际电子商务系统案例研究:最初的需求 100 9.4 处理新的需求 101 9.5 Strategy模式 108 9.6 实践注记:使用Strategy模式 110 9.7 小结 111 复习题 111 简答题 111 阐述题 112 观点与应用题 112 第10章 Bridge模式 113 10.1 概览 113 10.2 Bridge模式简介 113 10.3 学习Bridge模式:示例 114 10.4 对使用设计模式的观察 123 10.5 学习Bridge模式:通过将它推演出来 124 10.6 Bridge模式回顾 131 10.7 实践注记:使用Bridge模式 132 10.8 小结 135 复习题 137 简答题 137 阐述题 137 观点与应用题 137 第11章 Abstract Factory模式 138 11.1 概览 138 11.2 Abstract Factory模式简介 138 11.3 学习Abstract Factory模式:示例 138 11.4 学习Abstract Factory模式:实现该模式 144 11.5 实践注记:Abstract Factory模式 149 11.6 将Abstract Factory模式与CAD/CAM问题联系起来 151 11.7 小结 151 复习题 152 简答题 152 阐述题 152 观点与应用题 152 第四部分 组合起来:用模式思考 第12章 专家设计之道 154 12.1 概览 154 12.2 添加特征的创建方式 154 12.3 小结 160 复习题 160 简答题 160 阐述题 161 观点与应用题 161 第13章 用模式解决CAD/CAM问题 162 13.1 概览 162 13.2 对CAD/CAM问题的回顾 162 13.3 用模式思考 163 13.4 用模式思考:步骤1 164 13.5 用模式思考:步骤2a 165 13.6 用模式思考:步骤2b 169 13.7 用模式思考:步骤2c 172 13.8 用模式思考:重复步骤2a和步骤2b(Facade模式) 173 13.9 用模式思考:重复步骤2a和步骤2b(Adapter模式) 174 13.10 用模式思考:重复步骤2a和步骤2b(Abstract Factory模式) 174 13.11 用模式思考:步骤3 175 13.12 与原解决方案的比较 175 13.13 小结 176 复习题 177 简答题 177 阐述题 177 观点与应用题 177 第五部分 迈向新的设计方式 第14章 设计模式的原则与策略 180 14.1 概览 180 14.2 开闭原则 181 14.3 从背景设计原则 181 14.4 封装变化原则 185 14.5 抽象类与接口 186 14.6 理性怀疑原则 187 14.7 小结 187 复习题 188 简答题 188 阐述题 188 观点与应用题 188 第15章 共性与可变性分析 189 15.1 概览 189 15.2 共性和可变性分析与应用程序设计 189 15.3 用CVA解决CAD/CAM问题 190 15.4 小结 194 复习题 194 简答题 194 阐述题 194 观点与应用题 195 第16章 分析矩阵 196 16.1 概览 196 16.2 现实世界:充满变化 196 16.3 国际电子商务系统案例研究:应对变化 197 16.4 实践注记 203 16.5 小结 206 复习题 206 简答题 206 阐述题 206 观点与应用题 206 第17章 Decorator模式 207 17.1 概览 207 17.2 更多细节 207 17.3 Decorator模式 209 17.4 将Decorator模式应用到我们的案例研究 210 17.5 另一个例子:输入/输出 213 17.6 实践注记:使用Decorator模式 215 17.7 Decorator模式的本质 216 17.8 小结 217 复习题 217 简答题 217 阐述题 217 观点与应用题 217 第六部分 其他重要模式 第18章 Observer模式 220 18.1 概览 220 18.2 模式的分类 220 18.3 国际电子商务案例的更多需求 221 18.4 Observer模式 222 18.5 将Observer模式应用到我们的案例研究 223 18.6 实践注记:使用Observer模式 227 18.7 小结 229 复习题 229 简答题 229 阐述题 230 观点与应用题 230 第19章 Template Method模式 231 19.1 概览 231 19.2 案例研究的更多需求 231 19.3 Template Method模式 232 19.4 将Template Method模式应用到我们的案例研究 232 19.5 使用Template Method模式减少冗余 233 19.6 实践注记:使用Template Method模式 238 19.7 小结 239 复习题 240 简答题 240 阐述题 240 第七部分 各种工厂模式 第20章 来自设计模式的教益:各种工厂模式 242 20.1 概览 242 20.2 工厂 242 20.3 再谈背景 243 20.4 工厂遵循我们的准则 245 20.5 限制变化的影响 246 20.6 对工厂的另一种思考方式 246 20.7 工厂的不同角色 247 20.8 实践注记 247 20.9 小结 248 复习题 248 简答题 248 阐述题 248 观点与应用题 248 第21章 Singleton模式和Double-Checked Locking模式 249 21.1 概览 249 21.2 Singleton模式简介 249 21.3 将Singleton模式应用到我们的案例研究 250 21.4 一种变体:Double-Checked Locking模式 252 21.5 反思 255 21.6 实践注记:使用Singleton模式和Double-Checked Locking模式 255 21.7 小结 256 复习题 256 简答题 256 阐述题 256 观点与应用题 256 第22章 Object Pool模式 257 22.1 概览 257 22.2 一个需要对对象进行管理的问题 257 22.3 Object Pool模式 263 22.4 观察:工厂的作用不仅是实例化 263 22.5 小结 265 复习题 265 简答题 265 阐述题 266 观点与应用题 266 第23章 Factory Method模式 267 23.1 概览 267 23.2 案例研究的更多需求 267 23.3 Factory Method模式 268 23.4 Factory Method模式与面向对象语言 268 23.5 实践注记:使用Factory Method模式 269 23.6 小结 270 复习题 271 简答题 271 阐述题 271 观点与应用题 271 第24章 工厂模式的总结 272 24.1 概览 272 24.2 软件开发过程中的步骤 272 24.3 工厂与极限编程实践殊途同归 273 24.4 系统的扩展性 273 第八部分 终点与起点 第25章 设计模式回顾:总结与新起点 276 25.1 概览 276 25.2 面向对象原则的总结 276 25.3 设计模式如何封装实现 277 25.4 共性和可变性分析与设计模式 277 25.5 按责任分解问题域 278 25.6 模式和从背景设计 279 25.7 模式内部的关联 279 25.8 设计模式与敏捷编程实践 281 25.9 实践注记 281 25.10 小结 281 复习题 282 简答题 282 阐述题 282 观点与应用题 282 第26章 参考书目 283 26.1 本书配套网站 283 26.2 推荐阅读 284 26.3 针对Java程序员的推荐读物 285 26.4 针对C++程序员的推荐读物 286 26.5 针对COBOL程序员的推荐读物 287 26.6 极限编程的推荐读物 287 26.7 程序设计的一般性推荐读物 287 26.8 个人推荐 288

2017-08-21

Elasticsearch Java教程

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。

2017-08-09

Axure RP Pro 7.0中文破解免安装版

Axure RP Pro 7.0中文破解版,使用前需要安装.Net_Framework_4.0

2017-08-06

《Java并发编程实战》

作者简介编辑 本书作者都是Java Community Process JSR 166专家组(并发工具)的主要成员,并在其他很多JCP专家组里任职。 Brian Goetz有20多年的软件咨询行业经验,并著有至少75篇关于Java开发的文章。Tim Peierls是“现代多处理器”的典范,他在BoxPop-biz、唱片艺术和戏剧表演方面也颇有研究。Joseph Bowbeer是一个Java ME专家,他对并发编程的兴趣始于Apollo计算机时代。 David Holmes是《The Java Programming Language》一书的合著者,任职于Sun公司。 Joshua Bloch是Google公司的首席Java架构师,《Effective Java》一书的作者,并参与著作了《Java Puzzlers》。 Doug Lea是《Concurrent Programming》一书的作者,纽约州立大学 Oswego分校的计算机科学教授。 对本书的赞誉 译者序 前 言 第1章 简介 1.1 并发简史 1.2 线程的优势 1.2.1 发挥多处理器的强大能力 1.2.2 建模的简单性 1.2.3 异步事件的简化处理 1.2.4 响应更灵敏的用户界面 1.3 线程带来的风险 1.3.1 安全性问题 1.3.2 活跃性问题 1.3.3 性能问题 1.4 线程无处不在 第一部分 基础知识 第2章 线程安全性 2.1 什么是线程安全性 2.2 原子性 2.2.1 竞态条件 2.2.2 示例:延迟初始化中的竞态条件 2.2.3 复合操作 2.3 加锁机制 2.3.1 内置锁 2.3.2 重入 2.4 用锁来保护状态 2.5 活跃性与性能 第3章 对象的共享 3.1 可见性 3.1.1 失效数据 3.1.2 非原子的64位操作 3.1.3 加锁与可见性 3.1.4 Volatile变量 3.2 发布与逸出 3.3 线程封闭 3.3.1 Ad-hoc线程封闭 3.3.2 栈封闭 3.3.3 ThreadLocal类 3.4 不变性 3.4.1 Final域 3.4.2 示例:使用Volatile类型来发布不可变对象 3.5 安全发布 3.5.1 不正确的发布:正确的对象被破坏 3.5.2  不可变对象与初始化安全性 3.5.3 安全发布的常用模式 3.5.4 事实不可变对象 3.5.5 可变对象 3.5.6 安全地共享对象 第4章 对象的组合 4.1 设计线程安全的类 4.1.1 收集同步需求 4.1.2 依赖状态的操作 4.1.3 状态的所有权 4.2 实例封闭 4.2.1 Java监视器模式 4.2.2 示例:车辆追踪 4.3 线程安全性的委托 4.3.1 示例:基于委托的车辆追踪器 4.3.2 独立的状态变量 4.3.3 当委托失效时 4.3.4 发布底层的状态变量 4.3.5 示例:发布状态的车辆追踪器 4.4 在现有的线程安全类中添加功能 4.4.1 客户端加锁机制 4.4.2 组合 4.5 将同步策略文档化 第5章 基础构建模块 5.1 同步容器类 5.1.1 同步容器类的问题 5.1.2 迭代器与Concurrent-ModificationException 5.1.3 隐藏迭代器 5.2 并发容器 5.2.1 ConcurrentHashMap 5.2.2 额外的原子Map操作 5.2.3 CopyOnWriteArrayList 5.3 阻塞队列和生产者-消费者模式 5.3.1 示例:桌面搜索 5.3.2 串行线程封闭 5.3.3 双端队列与工作密取 5.4 阻塞方法与中断方法 5.5 同步工具类 5.5.1 闭锁 5.5.2 FutureTask 5.5.3 信号量 5.5.4 栅栏 5.6 构建高效且可伸缩的结果缓存 第二部分 结构化并发应用程序 第6章 任务执行 6.1 在线程中执行任务 6.1.1 串行地执行任务 6.1.2 显式地为任务创建线程 6.1.3 无限制创建线程的不足 6.2 Executor框架 6.2.1 示例:基于Executor的Web服务器 6.2.2 执行策略 6.2.3 线程池 6.2.4 Executor的生命周期 6.2.5 延迟任务与周期任务 6.3 找出可利用的并行性 6.3.1 示例:串行的页面渲染器 6.3.2 携带结果的任务Callable与Future 6.3.3 示例:使用Future实现页面渲染器 6.3.4 在异构任务并行化中存在的局限 6.3.5 CompletionService:Executor与BlockingQueue 6.3.6 示例:使用CompletionService实现页面渲染器 6.3.7 为任务设置时限 6.3.8 示例:旅行预定门户网站 第7章 取消与关闭 第8章 线程池的使用 第9章 图形用户界面应用程序 第三部分 活跃性、性能与测试 第10章 避免活跃性危险 第11章 性能与可伸缩性 第12章 并发程序的测试 第四部分 高级主题 第13章 显式锁 第14章 构建自定义的同步工具 第15章 原子变量与非阻塞同步机制 第16章 Java内存模型 附录A 并发性标注 参考文献

2017-08-04

navicat premium11.0.16 64位英文绿色版

navicat这个工具相信不用多说了,很强大,premium版更是相比mysql版等其他单一版本更强大了不少,比如批量修改这些。本版本是绿色版,解压即可用,方便没有管理员权限的电脑使用。

2017-07-28

深入剖析TOMCAT高清完整版本

深入剖析TOMCAT高清完整版本,免分下载

2017-07-27

大型网站技术架构:核心原理与案例分析+李智慧.pdf

第1篇 概述 1 大型网站架构演化 2 1.1 大型网站软件系统的特点 3 1.2 大型网站架构演化发展历程 4 1.2.1 初始阶段的网站架构 4 1.2.2 应用服务和数据服务分离 4 1.2.3 使用缓存改善网站性能 5 1.2.4 使用应用服务器集群改善网站的并发处理能力 6 1.2.5 数据库读写分离 7 1.2.6 使用反向代理和CDN加速网站响应 8 1.2.7 使用分布式文件系统和分布式数据库系统 9 1.2.8 使用NoSQL和搜索引擎 10 1.2.9 业务拆分 11 1.2.10 分布式服务 11 1.3 大型网站架构演化的价值观 13 1.3.1 大型网站架构技术的核心价值是随网站所需灵活应对 13 1.3.2 驱动大型网站技术发展的主要力量是网站的业务发展 13 1.4 网站架构设计误区 14 1.4.1 一味追随大公司的解决方案 14 1.4.2 为了技术而技术 14 1.4.3 企图用技术解决所有问题 14 1.5 小结 15 2 大型网站架构模式 16 2.1 网站架构模式 16 2.1.1 分层 17 2.1.2 分割 18 2.1.3 分布式 18 2.1.4 集群 19 2.1.5 缓存 20 2.1.6 异步 20 2.1.7 冗余 21 2.1.8 自动化 22 2.1.9 安全 23 2.2 架构模式在新浪微博的应用 23 2.3 小结 25 3 大型网站核心架构要素 26 3.1 性能 27 3.2 可用性 28 3.3 伸缩性 29 3.4 扩展性 30 3.5 安全性 30 3.6 小结 31 第2篇 架构 4 瞬时响应:网站的高性能架构 34 4.1 网站性能测试 35 4.1.1 不同视角下的网站性能 35 4.1.2 性能测试指标 36 4.1.3 性能测试方法 39 4.1.4 性能测试报告 41 4.1.5 性能优化策略 41 4.2 Web前端性能优化 42 4.2.1 浏览器访问优化 42 4.2.2 CDN加速 43 4.2.3 反向代理 44 4.3 应用服务器性能优化 45 4.3.1 分布式缓存 45 4.3.2 异步操作 52 4.3.3 使用集群 53 4.3.4 代码优化 54 4.4 存储性能优化 58 4.4.1 机械硬盘vs. 固态硬盘 58 4.4.2 B+树vs. LSM树 59 4.4.3 RAID vs. HDFS 61 4.5 小结 64 5 万无一失:网站的高可用架构 66 5.1 网站可用性的度量与考核 67 5.1.1 网站可用性度量 67 5.1.2 网站可用性考核 67 5.2 高可用的网站架构 69 5.3 高可用的应用 71 5.3.1 通过负载均衡进行无状态服务的失效转移 72 5.3.2 应用服务器集群的Session管理 73 5.4 高可用的服务 76 5.5 高可用的数据 78 5.5.1 CAP原理 79 5.5.2 数据备份 82 5.5.3 失效转移 84 5.6 高可用网站的软件质量保证 85 5.6.1 网站发布 85 5.6.2 自动化测试 86 5.6.3 预发布验证 87 5.6.4 代码控制 88 5.6.5 自动化发布 90 5.6.6 灰度发布 91 5.7 网站运行监控 91 5.7.1 监控数据采集 92 5.7.2 监控管理 93 5.8 小结 94 6 永无止境:网站的伸缩性架构 95 6.1 网站架构的伸缩性设计 97 6.1.1 不同功能进行物理分离实现伸缩 97 6.1.2 单一功能通过集群规模实现伸缩 98 6.2 应用服务器集群的伸缩性设计 99 6.2.1 HTTP重定向负载均衡 100 6.2.2 DNS域名解析负载均衡 101 6.2.3 反向代理负载均衡 102 6.2.4 IP负载均衡 103 6.2.5 数据链路层负载均衡 104 6.2.6 负载均衡算法 105 6.3 分布式缓存集群的伸缩性设计 106 6.3.1 Memcached分布式缓存集群的访问模型 107 6.3.2 Memcached分布式缓存集群的伸缩性挑战 107 6.3.3 分布式缓存的一致性Hash算法 109 6.4 数据存储服务器集群的伸缩性设计 112 6.4.1 关系数据库集群的伸缩性设计 113 6.4.2 NoSQL数据库的伸缩性设计 117 6.5 小结 119 7 随需应变:网站的可扩展架构 121 7.1 构建可扩展的网站架构 122 7.2 利用分布式消息队列降低系统耦合性 123 7.2.1 事件驱动架构 123 7.2.2 分布式消息队列 124 7.3 利用分布式服务打造可复用的业务平台 126 7.3.1 Web Service与企业级分布式服务 128 7.3.2 大型网站分布式服务的需求与特点 129 7.3.3 分布式服务框架设计 130 7.4 可扩展的数据结构 131 7.5 利用开放平台建设网站生态圈 132 7.6 小结 134 8 固若金汤:网站的安全架构 135 8.1 道高一尺魔高一丈的网站应用攻击与防御 136 8.1.1 XSS攻击 136 8.1.2 注入攻击 138 8.1.3 CSRF攻击 139 8.1.4 其他攻击和漏洞 140 8.1.5 Web应用防火墙 141 8.1.6 网站安全漏洞扫描 142 8.2 信息加密技术及密钥安全管理 142 8.2.1 单向散列加密 143 8.2.2 对称加密 144 8.2.3 非对称加密 144 8.2.4 密钥安全管理 145 8.3 信息过滤与反垃圾 146 8.3.1 文本匹配 147 8.3.2 分类算法 148 8.3.3 黑名单 149 8.4 电子商务风险控制 150 8.4.1 风险 151 8.4.2 风控 151 8.5 小结 153 第3篇 案例 9 淘宝网的架构演化案例分析 156 9.1 淘宝网的业务发展历程 157 9.2 淘宝网技术架构演化 158 9.3 小结 162 10 维基百科的高性能架构设计分析 163 10.1 Wikipedia网站整体架构 163 10.2 Wikipedia性能优化策略 165 10.2.1 Wikipedia前端性能优化 165 10.2.2 Wikipedia服务端性能优化 166 10.2.3 Wikipedia后端性能优化 167 11 海量分布式存储系统Doris的高可用架构设计分析 169 11.1 分布式存储系统的高可用架构 170 11.2 不同故障情况下的高可用解决方案 171 11.2.1 分布式存储系统的故障分类 172 11.2.2 正常情况下系统访问结构 172 11.2.3 瞬时故障的高可用解决方案 173 11.2.4 临时故障的高可用解决方案 174 11.2.5 永久故障的高可用解决方案 175 12 网购秒杀系统架构设计案例分析 176 12.1 秒杀活动的技术挑战 177 12.2 秒杀系统的应对策略 177 12.3 秒杀系统架构设计 178 12.4 小结 182 13 大型网站典型故障案例分析 183 13.1 写日志也会引发故障 184 13.2 高并发访问数据库引发的故障 184 13.3 高并发情况下锁引发的故障 185 13.4 缓存引发的故障 185 13.5 应用启动不同步引发的故障 186 13.6 大文件读写独占磁盘引发的故障 186 13.7 滥用生产环境引发的故障 187 13.8 不规范的流程引发的故障 187 13.9 不好的编程习惯引发的故障 188 13.10 小结 188 第4篇 架构师 14 架构师领导艺术 190 14.1 关注人而不是产品 191 14.2 发掘人的优秀 191 14.3 共享美好蓝图 192 14.4 共同参与架构 193 14.5 学会妥协 194 14.6 成就他人 194 15 网站架构师职场攻略 196 15.1 发现问题,寻找突破 197 15.2 提出问题,寻求支持 199 15.3 解决问题,达成绩效 201 16 漫话网站架构师 203 16.1 按作用划分架构师 203 16.2 按效果划分架构师 204 16.3 按职责角色划分架构师 205 16.4 按关注层次划分架构师 205 16.5 按口碑划分架构师 206 16.6 非主流方式划分架构师 207 附录A 大型网站架构技术一览 208 附录B Web开发技术发展历程 215收缩

2017-07-26

unix编程艺术

unix编程艺术

2017-04-10

PlayMakerSamples.unitypackage

PlayMakerSamples.unitypackage playmaker官方案例 unity插件 playmaker官方小案例 记得先导入playmaker插件

2016-11-11

金字塔原理pdf书

《金字塔原理》(Pyramid Principles)由麦肯锡国际管理咨询公司的咨询顾问巴巴拉·明托(Barbara Minto)编著,于2002年12月出版发行,全书分为四个部分。该书旨在阐述写作过程的组织原理,提倡按照读者的阅读习惯改善写作效果。因为主要思想总是从次要思想中概括出来的,文章中所有思想的理想组织结构也就必定是一个金字塔结构——由一个总的思想统领多组思想。在这种金字塔结构中,思想之间的联系方式可以是纵向的——即任何一个层次的思想都是对其下面一个层次上的思想的总结;也可以是横向的——即多个思想因共同组成一个逻辑推断式,而被并列组织在一起。

2016-10-21

site-1.8.22.zip

eclipse的svn插件,使用时很方便解压,把对应的文件夹中的内容复制到eclipse中即可(features,plugins),就可以直接使用eclipse-svn功能下载上传,同步等一系列的工作了。

2016-10-18

pdfbox-fontbox(1.8.9).zip

PDFBOX和fontbox的jar包,可以抽取中文文字

2016-03-24

FlexPaper_2.1.0官方版本

FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。 另外你也可以通过将一些例如Word、PPT等文档转成PDF,然后实现在线浏览。

2016-03-24

JSTL中文帮助文档(CHM).chm )

JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。在 developerWorks 上其新系列的第一篇文章中,软件工程师 Mark Kolb 向您展示了如何使用 JSTL 标记来避免在 JSP 页面中使用脚本编制元素。您还将了解如何通过从表示层删除源代码来简化软件维护。最后,您将了解 JSTL 经过简化的表达式语言,它允许在不必使用功能齐全的编程语言的情况下对 JSTL 操作指定动态属性值。 JavaServer Pages(JSP)是用于 J2EE 平台的标准表示层技术。JSP 技术提供了用于执行计算(这些计算用来动态地生成页面内容)的脚本编制元素和操作。脚本编制元素允许在 JSP 页面中包括程序源代码,在为响应用户请求而呈现页面时可以执行这些源代码。操作将计算操作封装到很象 HTML 或 XML 标记的标记中,JSP 页面的模板文本通常包含这些标记。JSP 规范只将几种操作定义成了标准,但从 JSP 1.1 开始,开发人员已经能够以定制标记库的方式创建其自己的操作了。 JSP 标准标记库(JSTL)是 JSP 1.2 定制标记库集,这些标记库实现大量服务器端 Java 应用程序常用的基本功能。通过为典型表示层任务(如数据格式化和迭代或条件内容)提供标准实现,JSTL 使 JSP 作者可以专注于特定于应用程序的开发需求,而不是为这些通用操作“另起炉灶”。 当然,您可以使用 JSP 脚本编制元素(scriptlet、表达式和声明)来实现此类任务。例如,可以使用三个 scriptlet 实现条件内容,清单 1 中着重显示了这三个 scriptlet。但是,因为脚本编制元素依赖于在页面中嵌入程序源代码(通常是 Java 代码),所以对于使用这些脚本编制元素的 JSP 页面,其软件维护任务的复杂度大大增加了。例如,清单 1 中的 scriptlet 示例严格地依赖于花括号的正确匹配。如果不经意间引入了一个语法错误,则条件内容中的嵌套其它 scriptlet 可能会造成严重破坏,并且在 JSP 容器编译该页面时,要使所产生的错误信息有意义可能会很困难

2016-03-05

c3p0jar的包

c3p0最新jar包 源码 官网下载...

2016-03-01

commons-collections.jar下载

commons-collections.jar下载

2016-02-29

commons-dbcp-1.4.jar和commons-pool-1.5.6.jar

commons-dbcp-1.4.jar和commons-pool-1.5.6.jar

2016-02-29

空空如也

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

TA关注的人

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