自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (4)
  • 收藏
  • 关注

原创 目录-时间

<br />1《core java》<br />2《think in java》<br />9 《Head First Servlet & JSP》<br />3《design pattern》<br />4《refractor》<br />5《spring in action》+《j2ee whitout ejb》<br />6《hibernate in action》<br />7《OSGI 原理与最佳实践》<br />8《分布式Java应用:基础与实践》<br />10 《敏捷软件开发:原则 模式与实

2011-01-24 11:01:00 787

原创 命令模式Command

1 意图:把一个请求或者操作封装到一个对象中。把发出命令的职责和执行命令的责任分割开,委托给不同的对象。可以对请求排队、日志,提供命令的撤销和恢复。2 角色:共有5个角色客户端 Client:创建具体命令对象并确定其接收者。命令:抽象命令具体命令:实现execute方法,调用接收者的响应操作。请求者 Invoker :负责调用命令对象请求接收者 Receiver:负责具体实施和执行一个请求。3 类图 4 实际例子TagInventoryProcessor相当于Invoker角色IAdapterCommand

2011-01-21 15:49:00 893

原创 Callable和Future和FutureTask

<br />Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。<br />Callable和Runnable有几点不同:<br /> (1)Callable规定的方法是call(),而Runnable规定的方法是run().<br /> (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。<br /> (3)call()方法可抛出异常,而run()方法是不能抛出异常的。<br /> (4)运行Ca

2011-01-20 16:46:00 5137 1

原创 代理模式 Proxy

1 意图为某个对象提供一个代理对象,由代理对象控制对原有对象的引用。2 角色:   抽象主题:Subject   代理主题:Proxy,必须和真实主题实现相同的接口。   真实主题:RealSubject3 UML示意图4 实际例子       还没有5 经典例子:   (1)虚拟代理 智能引用代理,引用技术;同步代理:提供对象访问的同步操作   (2)远程代理 Spring HeepClient远程调用6 JDK反射的代理 “动态”的意思是什么:我理解是运行期间生成“代理类”。参考 http://wenk

2011-01-20 15:56:00 1126

翻译 《A Generational Mostly-concurrent Garbage Collector》部分翻译和笔记

本文主要记录了学习一片E文的内容,关于CMS算法的知识,翻译一部分算法,记录这篇文章涉及到的其他名词,这些名词体现的内容是有意义的。      首先列出这篇文章涉及到的一些可以引申的概念,以备以后查看      (1)GC Interface 和 generational framework :       (2)tricolor collection      (3)write barrier      开始翻译第三节      3 Mostly-concurrent Collection      原始

2011-01-20 11:50:00 1700

原创 记一次JVM调优Tuning

<br />面临的问题:年老带回收过于频繁,消耗时间太多。<br />运行环境:<br />(1)发送标签速度:平均 20672/s <br />(2)运行时间60665.993秒,没有发生OOME<br />(3)JVM选项    %JAVA_OPTS% -verbose:gc -Xms1200M -Xmx1200M -Xss256k -XX:PermSize=64m -XX:MaxPermSize=64m -XX:NewSize=750m -XX:SurvivorRatio=3     -XX:+Use

2011-01-19 11:55:00 1829

原创 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue在入队操作高并发性能比较

1 Test.java代码参考public class ConcurrentQueueTest { private static int COUNT = 100000; private static int THREAD_NUM = 10; private static CyclicBarrierThread cyclicBarrierThread = new CyclicBarrierThread(); private static ConcurrentLinkedQueue conQ

2011-01-19 08:52:00 12317

原创 访问者模式

 1. 意图:数据结构和对数据结构操作的解耦。     特点:数据结构是稳定的,操作是变化的。3 例子package thread.test;public class Client { static abstract class Node { abstract void accept(IVisitor visitor); } static class NodeA extends Node { @Override void accept(IVisitor visi

2011-01-18 17:11:00 723

原创 单例模式使用 懒汉模式和饿汉模式以及使用enum方式的性能测试

<br />本问分别使用懒汉、恶汉以及enum测试实现单例模式的不同实现,测试了他们的性能:<br />得出结论<br />(1)饿汉模式是懒汉模式的5倍左右,由于同步方法的业务方法逻辑简单,随着需要同步的业务方法复杂性变大,差距会逐渐变小。<br />(2)饿汉模式和enum实现的单例速度大致相等。<br />public class SinglePerformanceTest { static public class CountInc { private volatile long co

2011-01-17 16:20:00 2883 4

原创 PriorityBlockingQueue 的一个例子

<br />还是有些疑问的<br />(1)内部实现原理<br />(2)入队的时候需要不需要锁住整个队列? <br /> <br />public class PriorityBlockingQueueTest { private static int COUNT = 100; private static int THREAD_NUM = 10; static class Producer extends Thread { private BlockingQueue queue;

2011-01-17 15:48:00 2838

原创 java concurrent Exchanger的例子

<br />class DataBuffer { private int count; public static int MAX_SIZE = 100; public DataBuffer(int count) { this.count = count; } public synchronized boolean isFull() { return count == MAX_SIZE; } public synchronized boolean isEm

2011-01-14 16:44:00 1866

原创 比较ReentrantLock和synchronized和信号量Semaphore实现的同步性能

为了比较一下ReentrantLock和synchronized的性能,做了一下性能测试: public class ReentreLockTest { private static long COUNT = 1000000; private static Lock lock = new ReentrantLock(); private static long lockCounter = 0; private static long syncCounter = 0; private

2011-01-14 14:21:00 11216 1

原创 遍历文件夹 非递归 只收集指定后缀的文件

public class FileSystem { public static void main(String[] args) { long start = System.currentTimeMillis(); LinkedList list = new LinkedList(); File dir = new File("c://temp//"); File file[] = dir.listFiles(); for (int i = 0; i

2011-01-10 20:02:00 1340

原创 java NIO 点滴

1 主要涉及ByteBuffer和FileChannel两个类,下面的代码示例描述了一个文件拷贝的例子:public class CopyFile { public static void main(String[] args) throws Exception { String infile = "C://edpmain.log"; String outfile = "C://edpmain_to.log"; // 获取源文件和目标文件的输入输出流 FileInputStrea

2011-01-10 12:36:00 696

原创 常用算法

(1)折半查找,需要注意循环终止条件 和 high = mid - 1;以及low = mid + 1; public int search(int[] data, int key) { int low = 0; int high = data.length - 1; int mid; if (data == null) return -1; if (key > data[high]) { return -1; } if (key

2011-01-09 23:22:00 630

原创 使用jmap和MAT定位内存泄漏OOM

<br />一句话 分析 heap profile 文件<br />1 运行应用程序(使用jre版本为1.6以上)<br />2 命令行执行<br />            jmap -dump:format=b,file=d:/heap.hprof <pid><br />   其中d:/heap.hprof   是dump出来的内存映像发文件,可以取任何后缀的名字。<br /> <br />3 使用eclipse 的MAT分析d:/heap.hprof 文件,可以查看哪些对象占据大多数的内存空间。<br

2011-01-08 16:00:00 6643

原创 使用StatSVN的

<br />1 下载StatSVN http://www.statsvn.org/<br /> <br />2 安装SubVersion<br /> <br />3 新建bat文件,statSVN.bat,内容为<br />svn log -v --xml -r {2010-12-01}:{2011-01-01} > svn.logjava -jar statsvn.jar svn.log ./ -output-dir ./report<br /> <br />使用说明:<br />(1)将statsv

2011-01-06 10:35:00 4458 3

jquery div 可拖拽弹出对话框 .

jquery div 可拖拽弹出对话框 .

2012-03-11

VC6 鼠标钩子 最简单例子

VC6 鼠标钩子 最简单例子 和http://blog.csdn.net/arkblue/archive/2009/06/29/4307844.aspx 这篇文章配合使用

2009-06-29

skinmagic使用例子

skinmagic 使用例子 换皮肤 VC

2009-06-29

软件加密 技术内幕 软件破解方面

软件加密 软件加密 技术内幕 软件破解方面

2009-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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