自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

思考,思考,再思考~

每天学习一个新知识,写一个小程序...

转载 web.xml 中的listener、 filter、servlet 加载顺序及其详解

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰。        首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener -

2014-03-30 18:21:19 1204

转载 在web.xml中classpath和classpath*的区别

写spring的代码到现在,一直都很习惯性的拷贝web.xml中的内容,没怎么在意里面的内容,最近认真研究了下,很多东西都不是很理解,特别是classpath和classpath*的区别,研究了许久才搞明白,记录下备忘。classpath 和 classpath* 区别:classpath:只会到你指定的class路径中查找找文件;classpath*:不仅包含class路径,还包

2014-03-30 18:17:37 1196

转载 读Tomcat源码确定加载web.xml中节点元素的顺序

转载于点击打开链接有时候面试时会被问tomcat启动时web.xml中节点(类似listener,filter等)被加载的顺序,死记硬背那多没品,正好手里有tomcat7的源码,找了点时间翻了翻。让我们先来喵一眼tomcat的架构,大致了解下tomcat启动的顺序,那我们目前关心的仅仅是web.xml中的加载顺序,按照架构来讲肯定是在Context中,架构如下图:

2014-03-30 18:11:19 6390

转载 Spring源代码解析(二):IoC容器在Web容器中的启动

以下引用自博客:http://jiwenke-spring.blogspot.com/ 上面我们分析了IOC容器本身的实现,下面我们看看在典型的web环境中,Spring IOC容器是怎样被载入和起作用的。 简单的说,在web容器中,通过ServletContext为Spring的IOC容器提供宿主环境,对应的建立起一个IOC容器的体系。其中,首先需要建立的是根上下文,这个上下文持有的

2014-03-30 17:58:50 1364

转载 Spring: DispacherServlet和ContextLoaderListener中的WebApplicationContext的关系

.在Web容器(比如Tomcat)中配置Spring时,你可能已经司空见惯于web.xml文件中的以下配置代码: contextConfigLocation /WEB-INF/applicationContext.xml org.spri

2014-03-30 17:49:29 1769

转载 第三章 DispatcherServlet详解 ——跟开涛学SpringMVC

3.1、DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。 DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:

2014-03-30 17:40:32 1101

原创 使用FastDateFormat来代替JDK自带的DateFormat

SimpleDateFormat来做Date到String的类型转换,建议使用Apache commons-lang中的FastDateFormat。因为JDK里自带的SimpleDateFormat存在线程不安全问题。maven依赖: commons-lang commons-lang 2.5代码: private String initDate() {

2014-03-28 13:12:29 15429

转载 JUnit 4 常用的几个annotation 介绍

★ @Before:初始化方法,在任何一个测试执行之前必须执行的代码;★ @After:释放资源,在任何测试执行之后需要进行的收尾工作;★ @Test:测试方法,表明这是一个测试方法。对于方法的声明也有如下要求:名字可以随便取,没有任何限制,但是返回值必须为void,而且不能有任何参数。如果违反这些规定,会在运行时抛出一个异常。至于方法内该写些什么,那就要看你需要测试些什么了;在这里可以测

2014-03-26 16:24:39 1153

转载 JSP/Servlet 工作原理(转载)

ServletServlet 没有 main 方法,不能够独立的运行,它的运行需要容器的支持,Tomcat 是最常用的 JSP/Servlet 容器。Servlet 运行在 Servlet 容器中,并由容器管理从创建到销毁的整个过程。对于用户到达Servlet的请求,Servlet容器会创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用S

2014-03-08 23:20:09 22540 1

原创 SQL实例

一、题目:图书表id book_id author_id book_name pages press奖项表id book_id author_id cup_type cup_time作者表id author_id author_name content一、设计表,写出建表语句二、设计索引,写出创建索引的语句三、完成以下SQL1. 查询姓王的作者有多少2.

2014-03-05 17:26:47 2245

原创 Java_List元素的遍历和删除

1、创建一个ArrayListList list = new ArrayList();2、List常用的遍历方法有三种:(1)下标循环for (int i = 0, len = list.size(); i < len; i++) { System.out.print(list.get(i).toString()); }(2)fo

2014-02-21 14:40:08 13883

原创 打印蛇形矩阵

题目来自小米校招笔试题题目:打印蛇形矩阵思路:一次打印一个斜杠代码:#include using namespace std;void PrintUp(int **pArrMatrix,int nCurX,int nCurY,int nLen,int& nCount);void PrintDown(int **pArrMatrix,int nCurX,int nCurY

2013-10-23 16:18:49 1994 2

转载 Reservoir Sampling - 蓄水池抽样

文章转载于HappyAngle,在此谢过。问题起源于编程珠玑Column 12中的题目10,其描述如下:  How could you select one of n objects at random, where you see the objects sequentially but you do not know the value of n beforehand? F

2013-10-06 16:43:43 1073

转载 Manacher's ALGORITHM

文章转载于Felix's Blog,在写谢过,便于理解,文章有稍微改动。Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串首先用一个非常巧妙的方式对子串预处理,:(1)将所有可能的奇数/偶数长度的回文子串都转换成了奇数长度:在每个字符的两边都插入一个特殊的符号。比如 abba 变成 #a#b#b#a#, aba变成 #a#b#a#。 (2)为了进一步

2013-10-04 18:33:18 6325 2

原创 每日一题(97) - 找出大于某值的最小的不重复数

题目来自百度14年校招天津站笔试题,当时思路混乱导致被虐。题目:n为正整数,求比这个数大且最小的不重复数,重复数为相邻两位数字相同,如1101为重复数,1231为不重复数。举例:当n = 2222时,输出2301思路:代码:(1)暴力解决(2)O(n)算法#include #include using namespace std;char* IntToStr

2013-10-02 20:45:29 2530 4

转载 C/C++ 内存泄漏检测工具 Visual Leak Detector(转载)

转载于http://www.perfect-is-shit.com/2013/03/21/visual-leak-detector/C/C++ 内存泄漏检测工具 Visual Leak Detector这几天在用VLD(Visual Leak Detector)来检查内存泄露,感觉很好、很强大,所以推荐给大家。下面的博文不会面面俱到,这也不是我的目的。我的目的是再看了这篇文章以

2013-10-01 21:17:45 4723

转载 Visual Leak Detector 2.2.3 Visual C++内存检测工具(转载)

转载于http://blog.csdn.net/akof1314/article/details/7549979,在此谢过。 Visual Leak Detector是一款免费的、健全的、开源的Visual C++内存泄露检测系统。相比Visual C++自带的内存检测机制,Visual Leak Detector可以显示导致内存泄露的完整内存分配调用堆栈。主页地址:http://vld.

2013-10-01 21:15:50 1202

原创 每日一题(96) - 线段最多覆盖的点数

题目来自百度14年校招天津站笔试题,当时各种原因导致被虐。题目:数轴上从左到右有n个点a[0],a[1],…a[n-1],给定一根长度为L的绳子,求该绳子能覆盖几个点。举例:数组为{2,6,6,6,6,6,15,16,17,18,19},线段程度为6,最多被覆盖的点数为6.思路:可以设置两个指针pSlow和pFast,根据两个端点之间的距离来决定pSlow还是pFast向前走。(1

2013-10-01 15:09:24 2054

原创 每日一题(95) - 两个有序数组元素之积、和的最小K个值

题目来自阿里面试题目题目(1)已知A B两个数组,元素有序,构造新的集合S={x*y | x属于A, y属于B} 求S中最小的k个元素,最优解法。(2)已知A B两个数组,元素有序,构造新的集合S={x+y | x属于A, y属于B} 求S中最小的k个元素,最优解法。思路:这两个题本质上属于同一个题目,可以使用同一个思路做。思路(1) 暴力解决,此时时间复杂度为O(n^2)

2013-09-30 10:56:22 2059 2

原创 每日一题(94) - 堆排序

题目:基于数组的堆排序思路:主要分为两步(1)对无序数组调整成大根堆(从小到大的排序) 对非叶子结点进行调整  从最后一个非叶子结点开始,一直到根结束 每次调整,都调整一条路径,从待调整元素的位置开始,一直到叶子结点为止。(2)把堆顶与待排序的最后一个元素交换,之后调整堆代码:void Swap(int& nFirst,int& nSec){ int nTm

2013-09-20 20:17:05 1171

转载 如何预测用户query意图

转载于博客园的文章:如何预测用户query意图有一个朋友问,一个用户搜索一个query是“百度”,怎么知道用户真正是想找什么呢。我回答说,分析之前搜索这个query的用户点了些什么结果啊。朋友继续问,如果没有用户点击呢。呃,如果没有点击,这个问题就比较复杂了。整理了下思路,于是写成了本文。主要描述了关于如何预测用户query意图。希望会有所帮助。首先我们

2013-09-18 18:29:14 1607

原创 每日一题(93) - 字符串截断

题目:编写字符串截断函数char ** StrToK(const char* S1, const char* S2)。功能:字符串S2对字符串S1进行截断,并分别输出截断的字符串举例:S1=abcdefg, S2=be,最后返回一个字符串数组,将a,cd,fg三个字符串用指向指针的指针返回。思路:遇到相等字符或者字符串结束符,则表示每一行字符串结束陷阱:(1)函数返回指向指针的

2013-09-18 16:16:41 1351 2

原创 素数的求解

素数的定义定义:在一个大于0的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。问题 1、判断一个数是否为素数问题 2、判断[1,n]之间的素数------------------------问题 1、判断一个数是否为素数思路(1) 试除法基本思路:判断n是否为素数时,检查区间[2,n - 1]之间的数是否能整除n。代码:bool IsPrime(i

2013-09-17 08:25:09 2646 4

转载 TCP为什么要三次握手,不是两次四次

TCP为什么要三次握手,不是两次四次?第三次握手——革命斗争中的通信故事在革命战争影片中,经常会看到英勇的解放军战士背着步话机在喊“长江长江,我是黄河,听到请回答。”很明显,这是呼号为黄河的一方想找呼号为长江的另一方说事,为了保证影片的节奏,导演往往把后面的联络过程省略了,其实后面还有两步,长江听到黄河的呼叫后要回答“黄河黄河,我是长江,我听到了你,请回

2013-09-13 17:21:13 1376 2

转载 TCP连接的建立 (三次握手) 和释放 (四次握手)

TCP报文段首部格式:序号:本报文段所发送的数据的第一个字节的序号。确认号ack:期待收到对方下一个报文段的第一个数据字节的序号确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。              若同意连接,则在响应报文段中使得

2013-09-13 16:27:32 4181

原创 每日一题(92) - 归并排序

题目来自网络题目(1):基于数组的归并排序题目(2):基于链表的归并排序----------题目(1):基于数组的归并排序思路:借助分治的思想,总是先对待排序进行分割,之后再对两个子序列进行合并,生成一个有序序列。时间复杂度为O(nLogn),空间复杂度为O(n)代码:void Merge(int nArr[],int nStart,int nM

2013-09-11 13:03:30 834

原创 每日一题(92) - 快速排序

题目来自网络题目(1):基于数组的快速排序题目(2):基于链表的快速排序----题目(1):基于数组的快速排序思路:使用分治的思想,先选择枢轴,之后执行一次划分,并把原序列划分两个子序列,之后递归处理。代码:int partition(int nArr[],int nStart,int nEnd){ int nKey = nArr[nSt

2013-09-10 08:16:52 1047

原创 每日一题(91) - 插入排序

题目来自网络题目(1):基于数组的插入排序代码:void InsertSort(int nArr[],int nLen){ int j = 0; for (int i = 2;i <= nLen;i++) { if (nArr[i] < nArr[i - 1]) { nArr[0] = nArr[i]; j = i - 1; while(nArr[0

2013-09-09 20:39:50 928

原创 每日一题(90) - 磁带文件存放优化

题目和思路均来自编程之美题目:磁带上有n个文件,长度分别为L[0],L[1], ..., L[n-1]且被访问的概率分别为P[0],P[1],...,P[n-1]。要访问磁带上第n个文件,须要依次经过前面n-1个文件。分别给出三种情况,求如何安排文件在磁带上的存储顺序,使得访问这些文件所需经过的平均磁带长度最短? 每一个文件被访问的概率相等,但文件长度不同,求所有文件的存储顺序。

2013-09-07 23:01:10 1812 1

原创 背包问题九讲笔记_多重背包

摘自Tianyi Cui童鞋的《背包问题九讲》,稍作修改,方便理解。本文包含的内容: 问题描述 基本思路(和完全背包类似) 转换为01背包问题求解(直接利用01背包)---------------------------------------------1、问题描述已知:有一个容量为V的背包和N件物品,第i件物品最多有Num[i]件

2013-09-05 21:56:22 10284 3

原创 每日一题(89) - 两个字符串进行加减

题目来自网络题目描述通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。补充说明:1. 操作数为正整数,不需要考虑计算结果溢出的情况。2. 若输入算式格式错误,输出结果为“0”。要求实现函数: void arithmetic(const char

2013-09-05 18:40:46 3114

原创 每日一题(88) - 字符串压缩

题目来自网上题目描述:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"

2013-09-04 21:26:41 1149

原创 每日一题(87) - 字符串过滤

题目来自网上题目描述通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。要求实现函数: void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】 pInputStr: 输入字符串,lInputLen:

2013-09-04 21:02:29 1178

原创 背包问题九讲笔记_完全背包

摘自Tianyi Cui童鞋的《背包问题九讲》,稍作修改,方便理解。本文包含的内容:---------------------------------------------完全背包问题描述已知:有一个容量为V的背包和N件物品,第i件物品的重量是weight[i],收益是cost[i]。条件:每种物品都有无限件,能放多少就放多少。问题:在不超

2013-09-04 20:34:49 20671 5

原创 每日一题(86) - 计算两个字符串的最长公共子序列(LCS)

题目来自网上题目:求解两个字符串的最长公共子序列举例:strA = "ABCBDAB"strB = "BDCABA"字符串strA和strB的LCS为4.思路:DP代码#include #include #include using namespace std;/*f[i][j]:表示字符串strA[0~i]和字符串strB[0~j]最长公共子序列的长度

2013-09-03 20:09:50 1231

原创 每日一题(85) - 编写strcpy函数

题目来自网络题目:编写strcpy函数。函数声明:char *strcpy(char* dest, const char *src)功能:把src指向的字符串复制到以dest开始的地址空间说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串思路:直接拷贝吧,但是需要注意几个问题,容易出错。(1)拷贝前需要把目的地址的首地址拷贝出来。犯过

2013-09-03 19:28:08 855

原创 每日一题(84) - 区间重合判断

题目来自编程之美题目思路(1):预处理:O(n)把给出的所有区间全部映射到一个一维数组上,该一维数组中的元素等于元素下标所在区间的起始位置查询:O(1)首先判断待查区间的终点是否在一维数组上,如果在,看终点的起点是否小于待查区间的起点,如果小于等于,则包含。如果大于,则不包含。如果不在,则已知区间不包含待查区间。举例:已知区间:1 3;2 5;7 9

2013-08-29 10:35:31 1157

原创 每日一题(83) - 计算字符串的相似度

题目来自编程之美题目思路:其实就是求两个字符串的编辑距离,直接给出DP的思路代码#include #include #include using namespace std;/*f[i][j]:表示字符串A[1~i]转换成B[1~j]的最小编辑距离f[i][j] = min{f[i - 1][j - 1] + value,f[i][j - 1] + 1,f[i

2013-08-28 16:59:31 954

原创 每日一题(82) - 电话号码对应的英语单词

题目来自编程之美题目:电话的号码盘一般可以用于输入字母。如用2可以输入A、B、C,用3可以输入D、E、F等。给出一个号码,它可以对应许多个字母组合。如号码5869872,它对应的字母组合可以是JTMWTPA、JTMWTB······1)给出一个电话号码,从 设计程序,尽可能从这些字母组合中,找到一个有意义的单词来表述一个电话号码。如单词"computer"来描述号码26678837

2013-08-27 15:44:31 1636

原创 每日一题(81) - 子数组之和的最大值(二维) - 最大子矩阵和

题目:给出一个 m*n 的二维矩阵(元素可为正可为负),求该二维矩阵的一个子矩阵,且此子矩阵中所有元素的和最大,并输出该矩阵的和。举例(1)给出4*4的二维矩阵: 0 -2 -7  0  9  2 -6  2 -4  1 -4  1 -1  8  0 -2 和最大的子矩阵为: 9 2 -4 1 -1 8 此子矩阵元素的和为15。举例(2)

2013-08-27 13:01:59 2324

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