08 2016 档案

摘要:Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这 个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用 CopyOnWrite机制 阅读全文
posted @ 2016-08-31 15:18 简单爱_wxg 阅读(233) 评论(0) 推荐(0) 编辑
摘要:部署描述符实际上是一个XML文件,包含了很多描述servlet/JSP应用的各个方面的元素,如servlet注册、servlet映射以及监听器注册。部署描述符从下面的XML头开始: 这个头指定了XML的版本号以及所使用的编码。头的下面是DOCTYPE声明: 这段代码指定文件类型定义(DTD),可以通 阅读全文
posted @ 2016-08-27 13:08 简单爱_wxg 阅读(2551) 评论(0) 推荐(1) 编辑
摘要:1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应 (Request、Re 阅读全文
posted @ 2016-08-27 11:32 简单爱_wxg 阅读(3589) 评论(0) 推荐(0) 编辑
摘要:一、什么是JAVA的反射机制 Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection API取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等)、superclass(例如Object) 阅读全文
posted @ 2016-08-27 11:05 简单爱_wxg 阅读(629) 评论(0) 推荐(0) 编辑
摘要:功能简介: LinkedBlockingQueue是一种基于单向链表实现的有界的(可选的,不指定默认int最大值)阻塞队列。队列中的元素遵循先入先出 (FIFO)的规则。新元素插入到队列的尾部,从队列头部取出元素。(在并发程序中,基于链表实现的队列和基于数组实现的队列相比,往往具有更高的吞吐 量,但 阅读全文
posted @ 2016-08-25 15:28 简单爱_wxg 阅读(260) 评论(0) 推荐(0) 编辑
摘要:功能简介: ArrayBlockingQueue是一种基于数组实现的有界的阻塞队列。队列中的元素遵循先入先出(FIFO)的规则。新元素插入到队列的尾部,从队列头部取出元素。 和普通队列有所不同,该队列支持阻塞操作。比如从空队列中取元素,会导致当前线程阻塞,直到其他线程将元素放入队列;将元素插入已经满 阅读全文
posted @ 2016-08-25 15:02 简单爱_wxg 阅读(207) 评论(0) 推荐(0) 编辑
摘要:功能简介: AbstractQueuedSynchronizer(以下简称AQS)是Java并发包提供的一个同步基础机制,是并发包中实现Lock和其他同步机制(如:Semaphore、CountDownLatch和FutureTask等)的基础。 AQS内部包含一个FIFO的同步等待队列,简单的说, 阅读全文
posted @ 2016-08-25 14:42 简单爱_wxg 阅读(463) 评论(0) 推荐(0) 编辑
摘要:功能简介: Java代码层面提供的锁机制,可做为Synchronized(jvm内置)的替代物,和Synchronized一样都是可重入的。 与Synchronized相比较而言,ReentrantLock有以下优 势:支持公平/非公平锁、支持可中断的锁、支持非阻塞的tryLock(可超时)、支持锁 阅读全文
posted @ 2016-08-25 13:56 简单爱_wxg 阅读(229) 评论(0) 推荐(0) 编辑
摘要:控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转,目的是为了获得更好的扩展性和良好的可维护性。所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。 实例化Spring容器常用的两种方 阅读全文
posted @ 2016-08-24 11:32 简单爱_wxg 阅读(234) 评论(0) 推荐(0) 编辑
摘要:先了解AOP的相关术语: 通知(Advice):通知定义了切面是什么以及何时使用。描述了切面要完成的工作和何时需要执行这个工作。 连接点(Joinpoint):程序能够应用通知的一个“时机”,这些“时机”就是连接点,例如方法被调用时、异常被抛出时等等。 切入点(Pointcut)通知定义了切面要发生 阅读全文
posted @ 2016-08-24 10:15 简单爱_wxg 阅读(240) 评论(0) 推荐(0) 编辑
摘要:原理 AOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enter 阅读全文
posted @ 2016-08-24 10:09 简单爱_wxg 阅读(383) 评论(0) 推荐(0) 编辑
摘要:AOP中的概念 AOP(Aspect Orient Programming),也就是面向切面编程。可以这样理解,面向对象编程(OOP)是从静态角度考虑程序结构,面向切面编程(AOP)是从动态角度考虑程序运行过程。 AOP中的作用:常常通过 AOP 来处理一些具有横切性质的系统性服务,如事物管理、安全 阅读全文
posted @ 2016-08-23 16:41 简单爱_wxg 阅读(354) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/dolphin0520/p/3780005.html 1.Java数据类型 装箱和拆箱之前,我们先来了解一下Java的基本数据类型。 在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference Type(引用类型) 阅读全文
posted @ 2016-08-23 15:36 简单爱_wxg 阅读(321) 评论(0) 推荐(0) 编辑
摘要:HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的 安全版。 它是由Netscape开发并内置于其浏览器 阅读全文
posted @ 2016-08-23 11:48 简单爱_wxg 阅读(499) 评论(0) 推荐(0) 编辑
摘要:设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两 阅读全文
posted @ 2016-08-22 21:59 简单爱_wxg 阅读(311) 评论(0) 推荐(0) 编辑
摘要:问题描述 任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4。 普通法 我总是习惯叫普通法,因为我实在找不到一个合适的名字来描述它,其实就是最简单的方法,有点程序基础的人都能想得到,那就是移位+计数,很简单,不多说了, 阅读全文
posted @ 2016-08-21 11:44 简单爱_wxg 阅读(698) 评论(0) 推荐(1) 编辑
摘要:看到这个题目,我们首先想到的是求出这个整型数组所有连续子数组的和,长度为n的数组一共有 n(n+2)/2个子数组,因此要求出这些连续子数组的和最快也需要O(n^2)的时间复杂度。但是题目要求的O(n)的时间复杂度,因此上述思路不能解决问题。 使用动态规划方法 解体思路:如果用函数f(i)表示以第i个 阅读全文
posted @ 2016-08-20 15:49 简单爱_wxg 阅读(372) 评论(0) 推荐(0) 编辑
摘要:回溯法解题思路: 回溯就是让计算机自动的去搜索,碰到符合的情况就结束或者保存起来,在一条路径上走到尽头也不能找出解,就回到原来的岔路口,选择一条以前没有走过的路继 续探测,直到找到解或者走完所有路径为止。就这一点,回溯和所谓的DFS(深度优先搜索)是一样的。那现在的关键是,怎么实现搜索呢?回溯既然一 阅读全文
posted @ 2016-08-19 10:34 简单爱_wxg 阅读(285) 评论(0) 推荐(0) 编辑
摘要:假设下标从0开始,0,1,2 .. m-1共m个人,从1开始报数,报到k则此人从环出退出,问最后剩下的一个人的编号是多少? 现在假设m=10 0 1 2 3 4 5 6 7 8 9 k=3 第一个人出列后的序列为:0 1 3 4 5 6 7 8 9 即:3 4 5 6 7 8 9 0 1(*) 我们 阅读全文
posted @ 2016-08-18 10:41 简单爱_wxg 阅读(473) 评论(0) 推荐(0) 编辑
摘要:已知三个升序整数数组a[l], b[m]和c[n]。请在三个数组中各找一个元素,是的组成的三元组距离最小。三元组的距离定义是:假设a[i]、b[j]和c[k]是一个三元组,那么距离为: Distance = max(|a[ I ] – b[ j ]|, |a[ I ] – c[ k ]|, |b[ 阅读全文
posted @ 2016-08-17 15:40 简单爱_wxg 阅读(2153) 评论(0) 推荐(1) 编辑
摘要:问题描述:针对1、2、2、3、4、5这6个数字,写一个函数,打印出所有不同的排列,例如512234,215432等,要求“4”不能再第三位,“3”,“5”不能相连。 思路:针对这个问题,可以将6个节点构成一个无向连通图。由于3和5不能相连,因此在构造图时3和5不能相连。对于4不能出现在第三位可以在遍 阅读全文
posted @ 2016-08-17 14:03 简单爱_wxg 阅读(271) 评论(0) 推荐(0) 编辑
摘要:一.全排列的递归实现 为方便起见,用123来示例下。123的全排列有123、132、213、231、312、321这六种。首先考虑213和321这二个数是如何得出的。显然这二个都是123中的1与后面两数交换得到的。然后可以将123的第二个数和每三个数交换得到132。同理可以根据213和321来得23 阅读全文
posted @ 2016-08-17 13:58 简单爱_wxg 阅读(399) 评论(0) 推荐(0) 编辑
摘要:考虑一下,逆序是说a[i]>a[j],i<j。那么在排序的过程中,会把a[i]和a[j]交换过来,这个交换的过程,每交换一次,就是一个逆序对的“ 一个比较好的思路是利用分治的思想:先求前面一半数组的逆序数,再求后面一半数组的逆序数,然后求前面一半数组比后面一半数组中大的数的个数(也就是逆序数),这三 阅读全文
posted @ 2016-08-16 17:06 简单爱_wxg 阅读(2090) 评论(0) 推荐(1) 编辑
摘要:现在有一个城市销售经理,需要从公司出发,去拜访市内的商家,已知他的位置以及商家的位置,但是由于城市道路交通的原因,他只能在左右中选择一个方向,在上下中选择一个方向,现在问他有多少种方案到达商家地址。给定一个地图map及它的长宽n和m,其中1代表经理位置,2代表商家位置,-1代表不能经过的地区,0代表 阅读全文
posted @ 2016-08-12 21:05 简单爱_wxg 阅读(315) 评论(0) 推荐(0) 编辑
摘要:单链表逆序详解 单链表逆序详解 1.具有链表头的单链表 假设需要逆序的单链表为: 则逆序以后的链表为: 过程: (1)取p1指向header->next (p1=stu->next);p2保留p1->next(p2=p1->next);将p1->next置为NULL,因为单链表逆序以后,当前的p1节 阅读全文
posted @ 2016-08-12 19:39 简单爱_wxg 阅读(449) 评论(0) 推荐(0) 编辑
摘要:在有的操作系统中仅采用一级凋度,而有的操作系统则将凋度分为不同的层次,一个用户作业从进入系统成为后备作业开始,直到运行结退出系统为止,一般最多经历三级调度,即处理器调度可以分为以下3个层次。 1.高级调度(High Level Scheduling) 高级调度,称作业调度或长程调度(Long-ter 阅读全文
posted @ 2016-08-10 14:26 简单爱_wxg 阅读(4965) 评论(1) 推荐(1) 编辑
摘要:中断的类型 从中断事件的性质出发,中断可以分为两大类: 强迫性中断事件:包括硬件故障中断,程序性中断,外部中断和输入输出中断等。 自愿性中断事件:是由正在运行的进程执行一条访管指令用以请求系统调用而引起的中断,这种中断也称为"访管中断"。 一般情况下,优先级的高低顺序依次为:硬件故障中断、自愿中断、 阅读全文
posted @ 2016-08-10 14:14 简单爱_wxg 阅读(1827) 评论(0) 推荐(0) 编辑
摘要:传统存储管理方式都是为了同时将多个进程保存在内存中以便允许多道程序设计。它们都具有以下两个共同的特征: 一次性。作业必须一次性全部装入内存后,方能开始运行。这会导致两种情况发生:当作业很大,不能全部被装入内存时,将使该作业无法运行;当大量作业要求运行时,由于内存不足以容纳所有作业,只能使少数作业先运 阅读全文
posted @ 2016-08-10 13:51 简单爱_wxg 阅读(966) 评论(0) 推荐(0) 编辑
摘要:操作系统对内存的划分和动态分配,就是内存管理的概念。有效的内存管理在多道程序设计中非常重要,不仅方便用户使用存储器、提高内存利用率,还可以通过虚拟技术从逻辑上扩充存储器。内存管理的功能有: 内存空间的分配与回收 地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理必 阅读全文
posted @ 2016-08-08 21:01 简单爱_wxg 阅读(8611) 评论(0) 推荐(2) 编辑
摘要:本文导读:Insert 是T-sql中常用语句,但我们在开发中经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个 table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。sele 阅读全文
posted @ 2016-08-08 14:51 简单爱_wxg 阅读(4903) 评论(0) 推荐(0) 编辑
摘要:InnoDB和MyISAM是MySQL最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键 阅读全文
posted @ 2016-08-08 14:39 简单爱_wxg 阅读(281) 评论(0) 推荐(0) 编辑
摘要:脏读 dirty reads:当事务读取还未被提交的数据时,就会发生这种事件。举例来说:Transaction 1修改了一行数据,然后Transaction 2在Transaction 1还未提交修改操作之前读取了被修改的行。如果Transaction 1回滚了修改操作,那么Transaction 阅读全文
posted @ 2016-08-07 13:15 简单爱_wxg 阅读(649) 评论(0) 推荐(0) 编辑
摘要:存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化开发人员的工作量,减少数据在数据库和应用服务器之间的传输,对提高数据处理效率有好处。存储过程和函数的区别在于函数必须有返回值,而存储过程没有;存储过程可以使用IN、OUT和INOUT类型,而函数的参数只能使 阅读全文
posted @ 2016-08-06 17:19 简单爱_wxg 阅读(925) 评论(0) 推荐(0) 编辑
摘要:触发器(Trigger) 触发器(trigger)是数据库提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常 阅读全文
posted @ 2016-08-06 15:50 简单爱_wxg 阅读(389) 评论(0) 推荐(0) 编辑
摘要:首先划分一下,连接分为三种:内连接、外连接、交叉连接 。 内连接(INNER JOIN): 分为三种:等值连接、自然连接、不等连接 ; 外连接(OUTER JOIN): 左外连接(LEFT OUTER JOIN或LEFT JOIN) ,右外连接(RIGHT OUTER JOIN或RIGHT JOIN 阅读全文
posted @ 2016-08-06 14:36 简单爱_wxg 阅读(406) 评论(0) 推荐(0) 编辑
摘要:函数依赖:当某一列的数据必须随着另一列的数据改变而改变,表示第一列函数依赖与第二列.快速表示函数依赖的方式:T.x >T.y,在关系表T中,y列函数依赖与x列。 部分函数依赖:非主键的列依赖于组合主键的某个部分(但不是完全依赖于组合主键)。 传递依赖:如果改变任何非主键的列可能造成其他列的改变,即为 阅读全文
posted @ 2016-08-06 14:00 简单爱_wxg 阅读(267) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/wxwzy738/article/details/17590305 MySQL单列索引是我们使用MySQL数据库中经常会见到的,MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习。 为了形象地对比两者, 阅读全文
posted @ 2016-08-06 13:57 简单爱_wxg 阅读(33563) 评论(0) 推荐(1) 编辑
摘要:这个问题,看似是一个简单的排列组合问题,但是加上不同的限制条件,会演变成不同的问题,感觉很奇妙,就总结一下列举下来 问题一 问题描述:把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问有多少种不同的分法?(注:5,1,1和1,1,5是同一种分法) 解题分析: 设f(m,n)为m个苹果,n 阅读全文
posted @ 2016-08-05 19:34 简单爱_wxg 阅读(23885) 评论(0) 推荐(4) 编辑
摘要:在计算机科学中,B树(英语:B-tree)是一种自平衡的树,能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成。B树,概括来说是一个一般化的二叉查找树(binary search tree),可以拥有多于2个子节点。与自平衡二叉查找树不同,B树为系统大块 阅读全文
posted @ 2016-08-05 16:09 简单爱_wxg 阅读(281) 评论(0) 推荐(0) 编辑
摘要:servlet生命周期分为三个阶段: 加载并实例化 servlet容器负责加载和实例化servelt。当servlet容器启动时,或者在容器检测到需要这个servlet来响应第一个请求时,创建servlet实例。当servlet容器启动后,servlet通过类加载器来加载servlet类,加载完成后 阅读全文
posted @ 2016-08-05 13:31 简单爱_wxg 阅读(364) 评论(0) 推荐(0) 编辑
摘要:session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合,session一次的含义也很不相同。这里只探讨HTTP Session。为了说明问题,这里基于Java Servlet理解Session的概念与原理,这里所说 阅读全文
posted @ 2016-08-05 11:37 简单爱_wxg 阅读(193) 评论(0) 推荐(0) 编辑
摘要:页和区 要想做好索引优化,知道索引的存储结构是至关重要的。谈到存储就需要了解SQL中的页和区的概念: SQL中存储数据的基础单位就是页,一个页大小为8K,数据库可以将数据从逻辑上分成页,磁盘的I/O操作就是在页级执行。页包信三项内容: 96字节大小的标头,存储统计信息,包括页码、页类型、页的可用空间 阅读全文
posted @ 2016-08-05 10:36 简单爱_wxg 阅读(1133) 评论(0) 推荐(0) 编辑
摘要:先从servlet容器说起:大家最为熟悉的servlet容器就是Tomcat ,Servlet 容器是如何管理 Servlet?先看一下tomcat的容器模型:从上图可以看出 Tomcat 的容器分为四个等级,真正管理Servlet 的容器是Context 容器,一个 Context 对应一个 We 阅读全文
posted @ 2016-08-04 20:20 简单爱_wxg 阅读(269) 评论(0) 推荐(0) 编辑
摘要:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,引入了进程同步的概念。 竞争条件:多个进程并发访问和操作同一数据且执行结果与访问发生的特定顺序有关。 临界资源 虽然多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所使用,把一 阅读全文
posted @ 2016-08-02 14:10 简单爱_wxg 阅读(914) 评论(0) 推荐(0) 编辑
摘要:在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度算法适用于进程调度,有的调度算法两者都适用。下面介绍几种常用的调度算法。 先来先服务(FCFS)调度算法 FCFS调度算法是一种最简单的调度算法,该调度算法既可以用于作业调度也可以用于进程调度。在作业调度中,算法每次从后备作业队列 阅读全文
posted @ 2016-08-02 11:13 简单爱_wxg 阅读(1831) 评论(0) 推荐(0) 编辑
摘要:栈又称堆栈,是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。把对栈进行运算的一端称为栈顶,另一端称为栈底。向一个栈插入新元素称为入栈或进栈,Push;从一个栈删除元素称为退栈或出栈,Pop。因为后进栈的元素必定先出栈,所以又把栈称为后进先出表(Last In First Out, 阅读全文
posted @ 2016-08-01 22:28 简单爱_wxg 阅读(2796) 评论(0) 推荐(0) 编辑
摘要:堆的定义 堆(heap),这里所说的堆是数据结构中的堆,而不是内存模型中的堆。堆通常是一个可以被看做一棵树,它满足下列性质: [ 性质一 ] 堆中任意节点的值总是不大于(不小于)其子节点的值; [ 性质二 ] 堆总是一棵完全树。 将任意节点不大于其子节点的堆叫做最小堆或小根堆 ,而将任意节点不小于其 阅读全文
posted @ 2016-08-01 19:30 简单爱_wxg 阅读(511) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示