this的指向大概可以分成四种:
* 作为对象的方法调用
* 作为普通函数调用
* 构造器调用
* Function.prototype.call或Function.prototype.apply调用
1. 作为对象的时候,this指向该对象
var obj = {
a: 1,
getA: function() {
alert(this === obj); //true;
alert(this.a); //1
}
};
obj.getA();
2. 作为普通函数调用,this总是指向全局对象(在浏览器中就是window)
window.name = 'global
继续阅读 »
Bloom Filter是由Bloom在1970年提出的一种快速查找算法,通过多个hash算法来共同判断某个元素是否在某个集合内。可以用于网络爬虫的url重复过滤、垃圾邮件的过滤等等。
它相比hash容器的一个优势就是,不需要存储元素的实际数据到容器中去来一个个的比较是否存在。
只需要对应的位段来标记是否存在就行了,所以想当节省内存,特别适合海量的数据处理。并且由于省去了存储元素和比较操作,所以性能也比基于hash容器的高了很多。
但是由于bloom filter没有去比较元素,只通过多个hash来判断唯一性,所以存在一定的hash冲突导致误判。误判率的大小由hash函数的个数、hash函数优劣、以及存储的位空间大小共同决定。
继续阅读 »
ctypes是一个Python库,可以提供C中的数据类型,调用链接库中的函数.
1.加载动态链接库
使用cdll.LoadLibrary或者CDLL.
ex CDLL("libc,so,6")
2.调用已加载库中的函数
继续阅读 »
PY有自己内建的工厂函数sorted用来排序, 它返回一个原地排序后的副本. 采用的是原地排序算法. 这个工厂函数的原型是:
{}sort(cmp=None, key=None, reverse=None) {}
继续阅读 »
J2EE真不是个东西四之Servlet篇
more
Servlet真不是个东西!这东西繁得YB啊!真不知道这东西有哪点好,但是看到的都称其为最好的一个CGI程序。自从遇到这鸟东西,就没有一天的好日子过。
星期一:看了看Servlet,真是晕死了,用它写个你好世界竟然要16K的半页代码!函数的参数真是又臭又长,一个doGet函数竟然还要写两行!可想而知,周一的日子会好过吗?
继续阅读 »
Synchronized 是Java语言的关键字,可用来给对象和方法或者代码块加锁。
当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这个段代码。
当两个并发线程访问同一个对象object中的这个加锁同步代码块时,一个时间内只能有一个线程得到执行。
另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
然而,当一个线程访问object的一个加锁代码块时,另一个线程仍然可以访问该object中的非加锁代码块。
synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。
如果再细的分类,synchronized可作用于instance变量、obj
继续阅读 »
本节实现的是使用OpenCV里自带的函数,绘制直线、长方形、圆形和椭圆。
绘制直线
绘制长方形
绘制圆形
绘制椭圆
添加文字
实现过程
引用与创建空图
不再赘述,代码如下。
``` python
import cv2
import numpy
empty image
img = np.zeros((512, 512, 3), np.uint8)
```
绘制直线
使用opencv自带的line()函数绘制一条对角线,其声明如下:
python
cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
其中各种参数的意义如下:
img
继续阅读 »
本节实现的是提取出灰度图像和彩色图像的直方图。
显示灰度图像的灰度直方图
显示彩色图像各个通道的灰度直方图
在一幅图上显示三个通道的灰度直方图
实现过程
引用与打开图片
不再赘述,代码如下。
``` python
import cv2
import numpy
img1 = cv2.imread("test1.jpg", 0) #灰度图像
img2 = cv2.imread("test2.jpg") #彩色图像
```
灰度图像直方图
opencv里自带了calcHist()函数,可以计算一幅图像中各个像素值出现的次数,其函数的各个参数如下:
python
hist = cv2.calcHist([i
继续阅读 »
本节实现的是使用OpenCV里自带的函数,将两幅图片按照特定的比例融合
实现过程
引用与读取图片
不再赘述,代码如下。
```python
import cv2
import numpy
img1 = cv2.imread('test1.png')
img2 = cv2.imread('test2.png')
```
融合图片
利用addWeighted()函数,将图片1的比例设置为0.6,图片2的0.4,如下:
python
mg_mix = cv2.addWeighted(img1, 0.6, img2, 0.4, 0)
显示图片
分别显示两幅原图和融合后的图片:
```python
cv2.imsh
继续阅读 »
JSONP: JSON with padding
JSONP 是用来解决跨域请求的,它允许用户传递一个 callback 给服务器端,然后服务端返回数据时会将这个 callback 参数作为函数名来包裹住 JSON 数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了
继续阅读 »