一、装饰者模式定义 装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象。这种为对象动态添加职责的方式就称为装饰者模式。装饰者对象和它所装饰的对象拥有一致的接口,对于用户来说是透明的。 和java等语言不同的是,java的装饰器模式是给对象动态添加职责,javascr ...
分类:
编程语言 时间:
2016-07-28 16:37:55
阅读次数:
422
上篇用上帝视角多整个框架做了一个概述,同时也看清了web框架的的本质,下面我们从tornado程序的起始来分析其源码。 概述 上图是tornado程序启动以及接收到客户端请求后的整个过程,对于整个过程可以分为两大部分: 启动程序阶段,又称为待请求阶段(上图1、2所有系列和3.0) 接收并处理客户端请 ...
分类:
编程语言 时间:
2016-07-28 16:37:46
阅读次数:
631
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来 ...
分类:
编程语言 时间:
2016-07-28 16:34:24
阅读次数:
415
1.初始化:初始化将赋值与声明合并在一起。例如下面的语句声明了变量n-int,并将int的最大值赋给他: int n-int=INT-MAX; 也可以使用字面值常量来初始化。可以将变量初始化为另一个变量,条件是后者已经定义过。甚至可以 使用表达式来初始化变量,条件是当程序执行到该声明是,表达式中所有 ...
分类:
编程语言 时间:
2016-07-28 16:32:19
阅读次数:
192
首先说一下锁的优化策略。 1,自旋锁 自选锁其实就是在拿锁时发现已经有线程拿了锁,自己如果去拿会阻塞自己,这个时候会选择进行一次忙循环尝试。也就是不停循环看是否能等到上个线程自己释放锁。这个问题是基于一个现实考量的:很多拿了锁的线程会很快释放锁。因为一般敏感的操作不会很多。当然这个是一个不能完全确定 ...
分类:
编程语言 时间:
2016-07-28 16:31:37
阅读次数:
292
装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加 ...
分类:
编程语言 时间:
2016-07-28 16:28:55
阅读次数:
368
1、为了简化 JavaScript 的开发, 一些 JavsScript 库诞生了. JavaScript 库封装了很多预定义的对象和实用函数。能帮助使用者建立有高难度交互的 Web2.0 特性的富客户端页面, 并且兼容各大浏览器。当前流行的 JavaScript 库有:jQuery, MooToo ...
分类:
编程语言 时间:
2016-07-28 16:29:49
阅读次数:
292
排序:快排、堆排序 归并排序 各排序算法比较 稳定 时间复杂度 空间复杂度 ...
分类:
编程语言 时间:
2016-07-28 16:27:12
阅读次数:
245
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var arr = ['a','b','c','d','e']; arr[arr. ...
分类:
编程语言 时间:
2016-07-28 16:24:47
阅读次数:
210
//变量 //字符串方法 //继承 //用if功能检测 //测试json例子 //使用eval() //向页面输出3 //JSON.parse() //JSON的数据序列化 //模拟关联数组 //利用匿名函数可以给对象添加方法 //属性值可以是数组 //JSON对象 ...
分类:
编程语言 时间:
2016-07-28 16:25:12
阅读次数:
211
在进行前端开发过程中,在某些场景下,需要通过编写单元测试来提高代码质量。而JavaScript常用的单元测试框架有这几个:QUnit, Jasmine, MoCha.下面就基于这三个工具,简单做一比较: 1. QUnit QUnit是一个JavaScript单元测试框架. 它是个强大,容易使用和上手 ...
分类:
编程语言 时间:
2016-07-28 16:24:21
阅读次数:
679
Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两 ...
分类:
编程语言 时间:
2016-07-28 16:23:11
阅读次数:
298
【先来一发SPFA】 int spfa_dfs(int u) { vis[u]=1; for(int k=f[u]; k!=0; k=e[k].next) { int v=e[k].v,w=e[k].w; if( d[u]+w < d[v] ) { d[v]=d[u]+w; if(!vis[v]) ...
分类:
编程语言 时间:
2016-07-28 16:19:51
阅读次数:
271
Python简介: 一、什么是python Python是一门动态解释性的强类型定义语言。 pythonde 特点:“优雅”、“明确”、“简单”。 二、Python由来 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打 ...
分类:
编程语言 时间:
2016-07-28 16:19:42
阅读次数:
324