`
文章列表
Inside-springframework http://blog.csdn.net/dudutu/article/category/306140 ConcurrentHashMap之实现细节 http://www.iteye.com/topic/344876 hessian http://www.iteye.com/topic/245238 http://agapple.iteye.com/blog/949266 http://blog.163.com/jekyll_zhou@126/blog/static/182047382012103033035925/ http ...
前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的OOM了!问题虽然蹊跷,但也趁此机会再次对JVM堆模型、GC垃圾算法等进行了一次系统梳理; 基本概念 堆/Heap JVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Windows下为2G,而Linux 下为3G;64Bit的就没有这个限制。 JVM初始分配的内存由-Xms指定,默认是物理内存的1/64但小于1G。 JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4但小 ...
    还原一个数据库:mysql -h localhost -u root -p123456 www备份一个数据库:mysqldump -h localhost -u root -p123456 www > d:\www2008-2-26.sql其中WWW为数据库名//以下是在程序中进行测试//$command = “mysqldump –opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile”;$command=”mysqldump -h localhost -u root -p123456 ...
  性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析。 Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc日志 -verbose.gc ...

hash冲突的解决

为提高hash表查找性能,除了考虑选择合适的hash表表长和完美的hash函数外,还必须考虑hash表处理冲突的能力。当hash函数对两个不同的数据项产生了相同的hash值时,冲突就产生了。对于冲突的处理,通常采用的方法可以分为三类 ...
周末看的消息,搜狐博客和淘宝相继封了百度的爬虫,搜狐还封了google的蜘蛛,搜狐的目的,搜狐编辑博客已经说清了,就是要向facebook学习,不为别人做嫁衣,当然也是不让别人哪天封了自己,先下手为强,到时候让百度google被别人笑话,至于到时候是谁被笑话,现在还说不清楚,暂时不说这个。 昨天在新浪看到洪波先生的文章:淘宝封百度爬虫赌什么,洪波先生一向是我敬重的前辈,因此相当仔细看完了整篇文章,有一些想法想和洪波先生商榷。 我个人的看法,淘宝这次之所以屏蔽百度的爬虫,原因恐怕最主要的不见得是因为业务冲突。如果真的是因为业务冲突的话,那么要屏蔽百度的恐怕就不只是淘宝一家了,按照这个思路, ...
用Iterator模式实现遍历集合Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。例如,如果没有使用Iterator,遍历一个数组的方法是使用索引:for(int i=0; i<array.size(); i++) { ... get(i) ... }而访问一个链表(LinkedList)又必须使用while循环:while((e=e.next())!=null) { ... e.data() ... }以上两种方法客户端都必须事先知道集合的内部结构,访问代码和集合本身是紧耦合,无法将访问逻辑从集 ...

ByteBuffer使用

在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入缓冲区.缓冲区是定长的,基本上它只是一个列表,它的所有元素都是基本数据类型
public class Queue<Item> implements Iterable<Item>{ private Node first; private Node last; private int N; private class Node{ Item item; Node next; } public boolean isEmpty(){ return first == null;} public int size(){ return N;} public void enqueue(Item item){ Node ...
//实现Iterable接口,实现迭代遍历 public class Stack<Item> implements Iterable<Item>{ private Node first; private int N; //定义内部类作为栈中的每一个节点 private class Node{ Item item; Node next; } public boolean isEmpty(){ return first==null; } public int size(){ return N; } pu ...
缘起 (Motivation/intent) JavaScript中可以遍历对象中的属性,但Java却没有这样的语言支持。例如一个普通POJO对象UserBean   public class UserBean { private int id; private String name; private Date birthdate; // getters & setters }   现在想遍历对象中每个属性,获得如下的效果   UserBean user = new UserBean(1234, &q ...

迭代器模式

和原型模式一样,迭代器模式也基本不需要自己实现了,Java中提供了Iterator接口,可直接实现迭代器。迭代器模式也非常简单,就是为不同的集合统一遍历接口。这里看下Java中迭代器的实现代码,以ArrayList为例 //ArrayList实现了List接口 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable //List继承了Collection ...
可能大家都没有注意,Collection接口的父接口是java.lang.Iterable在这个接口中定义的是iterator方法并且这个接口中指出 “实现这个接口允许对象成为 "foreach" 语句的目标”这就是说,所有的集合类都要实现iterator方法都可以返回一个Iterator对象,完成迭代功能下面写一个示例代码演示一下package iterator;   import java.util.Iterator; /* * Jimliu * * 这个例子为了试验java.lang.Iterable接口中提到的: * 实现这个接口允许对象成 ...

Bloom Filter 总结

1 Overview     Bloom filter最早由 Burton Howard Bloom提出,是一种用于判断成员是否存在于某个集合中的数据结构。 Bloom filter的判断基于概率论: 如果某个成员存在于集合中,那么Bloom filter不会返回假(即不存在),也就是说false negative是不可能的。 如果某个成员实际上不存在于集合中,Bloom filter可能返回真(即存在),这种情况被称为false positive。     Bloom filter通常被实现为一个包含 m 位的位数组(bit array),所有位的初始值都为0。 Bloom f ...
package javaTest; //测试类 public class ProCon{ public static void main(String[] args){ SyncQueue queue = new SyncQueue(); Consumer p = new Consumer(queue); Producer c = new Producer(queue); new Thread(p).start(); new Thread(c).start(); ...
Global site tag (gtag.js) - Google Analytics