随笔分类 - Java
摘要:转自:http://www.ibm.com/developerworks/cn/java/java-lo-concurrenthashmap/index.html?ca=drs-简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅读本文需要读者了解 Java 内存模型。同时,ConcurrentHashMap 的源代码会涉及到散列算法和链表数据结构,所以
        阅读全文
            
摘要:包 java.util.concurrent.*[ 一 ]、常用线程池最常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactorythreadFactory, RejectedExecutionHandler handler)JDK自带的配置好的线程池: // 固定工作线程数量的线程池 ExecutorService executorServ..
        阅读全文
            
摘要:基本思路是:对每一条曲线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dmax,用dmax与限差D相比:若dmax<D,这条曲线上的中间点全部舍去;若dmax≥D,保留dmax对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用该方法。/// <summary>/// Uses the Douglas Peucker algorithm to reduce the number of points./// </summary>/// <param name="Points">The points.</par
        阅读全文
            
摘要:概念 Observer模式定义对象间的一对多的依赖关系,当一个对象(被观察者)的状态发生改变时, 所有依赖于它的对象(观察者)都得到通知并被自动更新。JDK里提供的observer设计模式的实现由java.util.Observable类和 java.util.Observer接口组成。从名字上可以清楚的看出两者在Observer 设计模式中分别扮演的角色:Observer是观察者角色,Observable是被观察目标(subject)角色。相关类介绍1.Obervable类此类表示模型视图范例中的 observable 对象,继承它的类表示应用程序想要观察的对象。一个 observable 
        阅读全文
            
摘要:如果你想写一个 Java 程序,观察某对象什么时候会被垃圾收集的执行绪清除,你必须要用一个 reference 记住此对象,以便随时观察,但是却因此造成此对象的 reference 数目一直无法为零, 使得对象无法被清除。 java.lang.ref.WeakReference 不过,现在有了 Weak Reference 之后,这就可以迎刃而解了。如果你希望能随时取得某对象的信息,但又不想影响此对象的垃圾收集,那么你应该用 Weak Reference 来记住此对象,而不是用一般的 reference。 A obj = new A(); WeakReference wr = new We..
        阅读全文
            
摘要:在网上查到的md5算法的实现,记录一下。方法一:public class MD5 {private static MD5 md5;private MD5(){}public static MD5 getInstance() {if (md5 == null) {md5 = new MD5();}return md5;}/* * Convert a 32-bit number to a hex string with ls-byte first */private String hex_chr = "0123456789abcdef";private String rhex(
        阅读全文
            
摘要:从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。1.强引用本章前文介绍的引用实际上都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就 类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。2.软引用(SoftReference)如果一个对象只具有软引用,那就类似于可有可物的生活用品。如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了
        阅读全文
            
摘要:在剖析该问题前请看如下代码public static String bytes2HexString(byte[] b) {String ret = "";for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[ i ] & 0xFF); if (hex.length() == 1) { hex = '0' + hex; } ret += hex.toUpperCase();}return ret;}上面是将byte[]转化十六进制的字符串,注意这里b[ i 
        阅读全文
            
 
                    
                 浙公网安备 33010602011771号
浙公网安备 33010602011771号