java
文章平均质量分 80
iteye_9550
这个作者很懒,什么都没留下…
展开
-
java主要集合类的数据结构学习
在程序中,集合类每天都在使用,以致于某些代码充斥着List和Map,一直没有机会整理下它们背后的实现原理。这几天不太忙,正好可以看会代码,补充下概念。和集合类的大致分类类似,下面我也分List,Map和Set来描述。一. List1).ArrayList [img]http://langyu.iteye.com/upload/picture/pic/34615/cd6f2ffb...2009-04-03 13:57:51 · 299 阅读 · 0 评论 -
给新人的一些题目
[size=medium]/* * @Author: dennyy99@gmail.com * @Date: 2012-04-02 */[/size] [size=medium] 好吧,我是有点热心了。看到ItEye上满屏的框架名词的确让人有些悲愤!如果我是一个准备学点Java用来开拓人生的新人,在出入ItEye多次后,可能见过最多的名词是SSH。这不能怪这个氛围,因为...2012-04-05 11:48:43 · 222 阅读 · 0 评论 -
Avro总结(RPC/序列化)
[size=medium] Avro(读音类似于[ævrə])是Hadoop的一个子项目,由Hadoop的创始人Doug Cutting(也是Lucene,Nutch等项目的创始人,膜拜)牵头开发,当前最新版本1.3.3。Avro是一个数据序列化系统,设计用于支持大批量数据交换的应用。它的主要特点有:支持二进制序列化方式,可以便捷,快速地处理大量数据;动态语言友好,Avro提供的机制使动态...2010-07-08 18:13:00 · 960 阅读 · 0 评论 -
[Java拾遗]初次尝试BCEL:修改类实现的例子
[size=medium] 项目中有个需求:在不修改源代码的情况下,替换某个类的引用为我们自己的实现。用一个类似的简单例子来说明:[/size][code="java"]public class CarHolder { private Car car; public CarHolder() { init(); } ...2011-09-15 17:17:03 · 365 阅读 · 0 评论 -
[Java拾遗]Java对象大小探究
[size=medium] 平时我们不会关心生成的对象到底在JVM中占据多少内存,当发生像OutOfMemory或JVM内存异常增加或减少时才会花精力研究到底发生了什么事情。如果当我们发现有些对象确实很大,但超过我们预期时,我们就该关心下我们所期望创建的每个对象大致会在JVM中占用多少内存呢。这节我会试着以一个更循序诱导的方法来描述,希望可以说的更明白,下面开始:[b]当遇到Ou...2011-09-07 14:22:40 · 147 阅读 · 0 评论 -
Ketama一致性Hash算法(含Java代码)
[size=medium]一致性哈希算法(Consistent Hashing Algorithm)是一种分布式算法,常用于负载均衡。Memcached client也选择这种算法,解决将key-value均匀分配到众多Memcached server上的问题。它可以取代传统的取模操作,解决了取模操作无法应对增删Memcached Server的问题(增删server会导致同一个key,在get操...2010-06-04 15:09:36 · 307 阅读 · 0 评论 -
闲谈程序中如何打印log
[size=medium]程序中记录日志一般有两个目的:Troubleshooting和显示程序运行状态。好的日志记录方式可以提供我们足够多定位问题的依据。这周看过很多代码,对里面的日志记录方式有些想法,今天是周末,也想总结下我对这个问题的看法。日志记录大家都会认为简单,但如何通过日志可以高效定位问题可不是简单的事情。这里我会写下面三个方面的内容,主要是举例为主,提醒我以后得注意这些方...2011-08-13 12:11:26 · 437 阅读 · 0 评论 -
Memcached CAS 协议
[b]什么是CAS协议[/b]Memcached于1.2.4版本新增CAS(Check and Set)协议类同于Java并发的CAS(Compare and Swap)原子操作,处理同一item被多个线程更改过程的并发问题。在Memcached中,每个key关联有一个64-bit长度的long型惟一数值,表示该key对应value的版本号。这个数值由Memcached serve...原创 2010-05-31 16:33:34 · 193 阅读 · 0 评论 -
某些并发环境下Double-check模型的改进
[size=medium][b]简单场景:[/b] 多线程环境,每个线程携带惟一的key去组装数据,相同的key会有相同的数据结果。为了提高响应速度,在线程访问的入口处设置缓存。线程根据key先从缓存中取数据,如果缓存中没有,线程就去做具体的逻辑处理。 模型如下图:假定每个线程的key如A, B等,同时有多个携带同一key的线程进来。[/size][...2010-11-01 14:26:24 · 161 阅读 · 0 评论 -
[Java拾遗]迭代list过程中删除元素
[size=medium]今天在翻看HDFS中FSImage初始化部分时,其中有段代码是这样的:[/size][code="java"]for (URI dirName : fsNameDirs) { boolean isAlsoEdits = false; for (URI editsDirName : fsEditsDirs) { ...2011-07-20 23:21:30 · 144 阅读 · 0 评论 -
详解 Too many open files
[size=medium] 运行在Linux系统上的Java程序可能会出现"Too many open files"的异常情况,且常见于高并发访问文件系统,多线程网络连接等场景。 程序经常访问的文件、socket在Linux中都是文件file,系统需要记录每个当前访问file的name、location、access authority等相关信息,这样的一个...2010-09-14 18:01:58 · 643 阅读 · 0 评论 -
java动态代理学习笔记
没事的时候翻看lang.reflect包下的代码,发现有两部分内容:涉及反射和动态代理。很多地方都可以看到动态代理的影子,只是一直没仔细看下。在学习之前,先提出几个问题,带着问题来看代码:[color=brown]1.什么是动态代理?2.为什么使用动态代理?3.使用它有哪些好处?4.哪些地方需要动态代理?[/color][color=red]--------...2009-06-17 16:30:20 · 141 阅读 · 0 评论 -
如何实现key, value有序的HashMap?
想要写个key, value有序的HashMap,出现性能问题,大家帮忙给个主意吧。[b]先说下我的设计思路:[/b]LinkedHashMap里面有一个模拟的“双向循环链表”,用来保存entry的插入顺序,我也可以采用这种方法来在插入的时候保存key和value的有序。这里暂定名为OrderedHashMap,主要代码是从LinkedHashMap抄过来的,它也维护着两个...2009-05-22 18:33:56 · 841 阅读 · 0 评论 -
文件中行级偏移量的一种获取方式
[i]下面所描述的内容是根据实际需要对BufferedReader的小改进,并提供一张简图来说明所做的修改。如有更方便的方式请回帖或联系dennyy99@gmail.com给予明示,谢谢[/i][size=medium] 如果需要对文件内容建索引,就可能需要每行数据的起始偏移量。下图是文件内容索引的简明结构,目标是为了引出我们对行级偏移量的需求[img]http:...原创 2012-04-11 18:48:02 · 401 阅读 · 0 评论