摘要: 在JDK 1.4版本中,新增加了nio包,目前在于提升IO速度。 不过大家都知道,增加了nio包之后,旧的io包其实也进行了重写。就算不显示的使用nio包,也可以明显的感觉到速度的提升。 而且很多人在使用io包的时候,也只是知道装饰一个Buffer的InputStream或者OutputStream,速度会更快。 那么,在这几者之间,速度上到底有差距没?差距有多大?我们将进行一次IO操作的性能测试。 测试的IO操作为,普通的文件读写(不带Buffer),带Buffer的文件读写,使用nio的管道的普通文件读写,使用nio的管道的随机文件读写。 先写一个TestIO测试类。/** * 测试I.. 阅读全文
posted @ 2012-07-22 22:34 java例子 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 首先谈谈什么是反射,这所说的反射是特制在编程语言中的反射,其官方解释如下:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。其作用如下:1.加载在程序集清单中列出的模块,以及从此程序集中查找类型并创建该类型的实例。2.了解包含模块的程序集以及模块中的类等。您还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。 3.了解函数的名称、参数、访问修饰符(如public或private)和实现详细信息(如abstract... 阅读全文
posted @ 2012-07-22 21:59 java例子 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 在并发编程中实用工具类 第一章 关键接口1.BlockingQueue<E>支持两个附加操作的Queue,这两个操作是:检索元素时等待队列变为非空,以及存储元素时等待空间变得可用。2.Callable<V>返回结果并且可能抛出异常的任务。3.CompletionService<V>将生产新的异步任务与使用已完成任务的结果分离开来的服务。4.ConcurrentMap<K,V>提供其他原子putIfAbsent、remove、replace方法的Map。5.Delayed一种混合风格的接口,用来标记那些应该在给定延迟时间之后执行的对象。6.Exec 阅读全文
posted @ 2012-07-22 17:21 java例子 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 欢迎转载,转载请注明出处:http://it.zhutibo.com/action/article1227.htm学习枚举的第一个疑问:为什么不用static final字段替代我想几乎每一个学习Java语言的人在学习枚举的时候首先的一个疑问就是“为什么不用static final字段替代?”,有这个疑问就说明你已经摸索到了枚举类型的最主要功能:以统一命名的常量来替换变化无常的直接量,这是毫无疑问是枚举的最主要作用,在大多数情况下,用static final是足够的,所以N多知名的源码里我们会经常看到用static final字段定义的一系列常量;那么为什么要用枚举呢?有几个原因:枚举的元素是 阅读全文
posted @ 2012-07-22 00:35 java例子 阅读(238) 评论(0) 推荐(0) 编辑