- 博客(16)
- 资源 (6)
- 收藏
- 关注
原创 [函数式编程]之美--开篇
1 什么是函数式编程函数式编程(Functional Programming),顾名思义就是基于函数的编程模式,非过程、非对象。In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical fu
2013-04-24 14:05:43 1317
原创 Java[设计模式]之美——单例模式
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在,并通过这个唯一实例来向系统提供实例行为。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个
2013-04-18 14:06:22 925
原创 Java[设计模式]之美——开篇
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为
2013-04-18 14:04:57 1117
原创 微博短链接生成算法与简单实现
自从twitter推出短网址(shorturl),国内也有很多互联网公司推出短网址链接,比如微博等。下面是从网上找到了一些算法总结:算法一:最容易想到的算法可能是利用md5类的加密算法,然后针对加密后的字符串进行处理。1)将长网址md5生成32位签名串,分为4段, 每段8个字节;2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作,
2013-04-17 19:53:39 4097
原创 一种高并发流控程序的简单轻量实现
实现一个流控程序,控制客户端每秒调用某个远程服务不超过N次,客户端是会多线程并发调用。import java.util.Date;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;import
2013-04-16 16:06:04 6275 2
原创 一段阻塞队列代码的纠错与优化
下面的代码在某处发现后,立马发现存在问题。public class BlockingQ { private Object notEmpty = new Object(); private Object notFull = new Object(); private Queue linkedList = new LinkedList(); private int maxLength
2013-04-16 14:16:17 1098
原创 一种简单线程并发控制的实现
/** * @author 天水 * @date 2013-4-12 下午05:08:49 */public class ConcurrentController implements Runnable { // 并发控制数 private int controlCount; // 并发控制超时时间 (second) private int controlTimeout; //
2013-04-12 18:18:08 998
原创 二进制流实现深复制
public static Object depthClone(Object srcObj) throws IOException, ClassNotFoundException{ Object cloneObj = null; ByteArrayOutputStream out = new ByteArrayOutputStream(); ObjectOutputStream oo
2013-04-10 17:34:58 813
原创 无锁同步栈实现
public class ConcurrentStack { private AtomicReference> top = new AtomicReference>(); ConcurrentStack(){ } public void push(E item) { Node newHead = new Node(item)
2013-04-10 16:57:27 1771
原创 一种简单无锁队列的实现
Disruptor是内存无锁并发框架,基于一个环数组作为缓冲,详见Disruptor-1.0。下面是自己设计的一个简易版,目前没有发现存在冲突或错误的测试用例。大家可以一起测试下。package tianshui.lockfree.queue;import java.io.Serializable;import java.lang.reflect.Array;import
2013-04-09 17:33:07 6727 1
转载 CAP理论十二年回顾:"规则"变了
CAP理论断言任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。但是通过显式处理分区情形,系统设计师可以做到优化数据一致性和可用性,进而取得三者之间的平衡。自打引入CAP理论的十几年里,设计师和研究者已经以它为理论基础探索了各式各样新颖的分布式系统,甚至到了滥用的程度。NoSQL运动也将CAP理论当作对抗传统关系型数据库的依据。CAP理论主张任何基于
2013-04-09 10:36:51 1012
原创 Java内存模型(上)
Jvm中内存分为两种:一种是栈内存,一种是堆内存。栈内存:存放对象,函数中基本类型的变量和对象的引用变量、静态类方法;特点:存在栈中的数据可以共享。堆内存:存放对象,用来存放由new创建的对象和数组;特点:由Java虚拟机的自动垃圾回收器(GC)来管理。Java 内存模型 ( java memory model ):根据Java Language Specification中的说明,j
2013-04-08 11:25:40 1078
转载 探秘Java虚拟机——内存管理与垃圾回收
本文主要是基于Sun JDK 1.6 Garbage Collector(作者:毕玄)的整理与总结,原文请读者在网上搜索。1、Java虚拟机运行时的数据区2、常用的内存区域调节参数-Xms:初始堆大小,默认为物理内存的1/64(-Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制-Xmn:新
2013-04-08 10:02:46 823
原创 Java内存模型(下)
顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。根据对不同类型读/写操作组合的执行顺序的放松,可以把常见处理器的内存模型划分为下面几种类型: 1
2013-04-07 14:54:30 860
原创 sun.misc.Unsafe
sun.misc.Unsafe是jdk并发类库java.util.concurrent包中使用的底层类,该类中的方法都是通过native方法调用操作系统命令。Unsafe类中直接提供操作系统调度命令park、unpark,减少信号量的开销,提高新能。Unsafe unsafe = Unsafe.getUnsafe(); 通过这样的方式获得Unsafe的实力会抛出异常信息,因为在unsafe的源
2013-04-07 13:33:04 1316
原创 线程池合理配置
合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。要想合
2013-04-02 14:08:57 887
麻省理工 算法导论(全)
2010-04-29
Udp穿透技术 资料整理 源代码
2010-04-24
MC算法C++实现 源代码
2010-04-24
wpf程序设计指南(中文版)
2010-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人