hengyunabc的专栏

日落黄金台金黄落日 -- 横云断岭

为什么Java中的HashMap<K, V>的get函数是get(Object key),而不是get(K key)?

帮别人的代码改bug,发现有一大堆bug是由get或者remove传递进去的参数类型不匹配而造成的。 比如: Map m = new HashMap(); m.put(new Short((short) 2), "2222"); System.out.pr...

2012-06-27 16:16:58

阅读数:6970

评论数:4

泛型编程的困境

原文:http://research.swtch.com/generic 常用的数据结构(vectors,queues,maps,trees,等等)似乎是评估一个新语言的一个热门话题。Go语言的FAQ中有一条就是关于Go中的泛型编程。对于泛型编程的通常有以下三种处理方式: 1.(C语言)放...

2012-06-24 22:50:35

阅读数:9001

评论数:7

测试Java的synchronize和ReentrantLock在单线程下的效率

ReentrantLock 在多线程情况下要远胜synchronize,这点没有疑问。 最近要写个程序,有个变量是有多数情况下是一个线程读写,有少数情况下是多个线程并发读写。所以要测试下ReentrantLock 在单线程下和synchronize的效率对比。 在测试的过程中发现一个有意思的现...

2012-06-14 02:40:21

阅读数:2904

评论数:0

Java中的数据结构一览

Java的类库实在是很多,以至于很多人都不太了解,结果总是自己造轮子。 下面汇总了Java中的一些数据结构,加上一些实现的分析,同时备忘。 至于时间复杂度,个人觉得写出来的用处不大。如果明白它是怎么实现的,那自然就知道它的时间复杂度。 如果不理解它的实现,把时间复杂度背得再熟也没...

2012-06-13 02:14:13

阅读数:17297

评论数:0

Java中的sun.misc.Unsafe包

chronicle项目:https://github.com/peter-lawrey/Java-Chronicle 这个项目是利用mmap机制来实现高效的读写数据,号称每秒写入5到20百万条数据。 作者有个测试,写入1百万条log用时0.234秒,用java自带的logger,用时7.3...

2012-06-13 00:53:57

阅读数:20949

评论数:2

从Java中String的subString函数说起

今天在用VisualVM查看进程的堆dump时,发现一些有意思的地方,见下图: 在“OQL控制台”页面中可以看到“过度分配的字符串”,“布尔值太多”。 从这里,可以看到一些有意思的地方。 有垃圾回收机制的语言通常有很多优化 1..String是不能改变的,所以subStri...

2012-06-03 14:51:49

阅读数:2356

评论数:0

为什么逗号表达式返回最后一个表达式的结果?--从另一个角度看C++

auto v = func1(), func2(), func3(); 因为一个函数调用是要经过参数压栈,调用完了,还有退栈(栈清理)的过程。 而这个退栈的工作可以由调用者或者被调用者来进行,因此也分为两种不同的调用约定: __cdecl和_stdcall,当然这个扯远了。要是再扯远点,还有...

2012-06-03 13:29:33

阅读数:1381

评论数:2

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