Map源码笔记之TreeMap

最后修改于: 2016-04-11 00:19:24.0

TreeMap比较简单,在JDK8和JDK7中差别很小,所以这次看的是JDK8的TreeMap实现。TreeMap的声明如下:

public class TreeMap<K, V> extends AbstractMap<K, V> implements
		NavigableMap<K, V>, Cloneable, java.io.Serializable {
	……
}

其中NavigableMap实现了SortedMap接口,并增加了一下按序访问的方法,比如lowerKey(K),higherKey(K),pollFirstEntry()等。

Map源码笔记之ConcurrentHashMap(JDK7)

最后修改于: 2016-04-03 14:48:47.0

之前看了HashMap的源码,而对于ConcurrentHashMap,在并发编程实战那本书中有一点了解,知道它使用了分段锁等手段提高并发性能,并且数据具有弱一致性等特点,不过毕竟还是应该看看源码才是最好。

然而打开源码我就蒙了,6000多行,找到一些关键方法看一看发现跟网上看过的一些文章讲得完全不一样啊。这时我想起之前看HashMap的源码也是这样,中文网络上大多都是JDK6的源码分析,而在JDK8中有很大的改动。于是下载了一份JDK7的源码,找到ConcurrentHashMap打开一看,1600行,好感人,JDK8真是丧心病狂。所以先就针对JDK7的实现来学习一下,之后有精力再看看JDK8那6000多行的实现到底是怎么回事。。。

字段与方法的多态区别

最后修改于: 2016-03-31 23:00:16.0

虽然多态在oo编程里面是再基础不过的东西,不过未必能完全把细节说清楚,比如今天在知乎看到一个问题,下面这段代码的结果是什么?那个display写成diplay是题主就这么写的,不是我的锅

public class Test {
    public static void main(String[] args) {
        P b = new B();
        System.out.println(b.a);
    }

    static class P 

从字节码解释初始化块的行为

最后修改于: 2016-03-31 21:06:59.0

先看一段代码:

public class Solution {  
    public static Solution ss = new Solution();
    {
        System.out.println("A");
    }
    static{
        System.out.println("B");
 &

关于搜索

最后修改于: 2016-03-29 00:21:42.0

2016-03-23

搜索博文这个东西,做了一个极其简陋的初版出来,就是用MySQL的like关键字搜标题而已,用带参数的Get发请求,请求的页数如一般的日志流一样在url中。

下一步的想法是把搜索范围改成标题、内容和分类,然后增加一个缓存的功能,对于一个关键字来说肯定有不止一个人会来搜,而且搜索之后翻页的可能性是很大的,所以在对某个关键词搜第一次的时候把全部结果都缓存起来,任何用户再次搜索这个关键词的任何一页都可以直接返回,不用再查询数据库。


虚拟机GC与内存分配

最后修改于: 2016-03-24 19:07:09.0

Java和C++的一大区别就是Java没有指针的概念,也(基本)不用程序开发者自己管理内存,不像C++存在着内存泄漏,非法访问等等问题。这当然都是依靠虚拟机的GC(Garbage Collection,GC)机制实现的。学习GC,或者说学习虚拟机的相关知识应该是每个使用高级虚拟机语言的开发者的必修课,知其然也要知其所以然嘛。

一、什么是垃圾?

在考虑什么是垃圾这个问题之前先想想垃圾都在哪?垃圾(基本)都在堆里,而(肯定)不在栈上。栈里的栈帧随着方法的进入和退出,开辟多少空间,回收多少空间都是确定而有序的,所以不需要什么GC。

求最大公约数--欧几里德算法

最后修改于: 2016-03-19 15:38:25.0

之前在算法和数据结构书上看过来着,时间一久又忘记了。

用GCD来表示最大公约数,GCD=Greatest Commen Divisor

欧几里德定理

  • 若 a=b×r+q 则gcd(a, b) = gcd(b, q).

欧几里德定理的证明:

a = b × r + q
设c = gcd(a, b), a = m×c, b= n×c

关于我

男,1991年末出生,这个人很懒,其他的不想写了。
More about me

文章分类

其他玩意儿