Java基础
iteye_1584
这个作者很懒,什么都没留下…
展开
-
Java实现动态代理
1、 简单代理模式的实现。 interface Interface{ void doSomething(); void doSomethingElse(String arg);}class RealObject implements Interface{ public void doSomething(){ System.out.println("doSomething"); } ...原创 2014-09-05 16:07:58 · 83 阅读 · 0 评论 -
斐波那契数列的实现
public interface Generator<T> { T next();}public class Fibonacci implements Generator<Integer>{ private int count = 0; public Integer next(){ return fib(count++); } private int fib(int...原创 2014-09-09 10:35:05 · 98 阅读 · 0 评论 -
Map学习笔记
Map都有哪些? 答:有HashMap、TreeMap、LinkedHashMap、WeakHashMap、ConcurrentHashMap、IdentityHashMap HashMap: Map基于散列表的实现(它取代了Hashtable)。插入和查询“键值对”的开销是固定的。可以通过构造器设置容量和负载因子,以调整容器的性能。 HashMap使用了特殊的值,称作散列码,来取代度键的缓慢搜...原创 2014-09-16 14:14:42 · 81 阅读 · 0 评论 -
HashMap的散列原理
为了速度而散列: 散列的价值在于速度:散列使得查询得以快速进行。由于瓶颈在于键的查询速度,因为解决方案之一就是保持键的排序状态。然后使用Collections.binarySearch()进行查询。 散列则更进一步,它将键保存在某处,以便能够很快找到。存储一组元素最快的数据结构是数组,所以用它来表示键的信息 (请小心留意,这里说的是键的信息,而不是键本身)。但是因为数组不能调整容...原创 2014-09-18 09:52:49 · 181 阅读 · 0 评论 -
ArrayList和LinkedList的区别
ArrayList和LinkedList的区别:答:ArrayList底层由数组支持;而LinkedList是由双向链表实现的,其中的每个对象包含数据的同时还包含指向链表中前一个与后一个元素的引用。因此,如果要经常在表中插入或者删除元素,LinkedList就比较合适;否则,应该使用速度更快的ArrayList,因为存过一组元素最快的数据结构是数组。对于背后有数组支撑的List和ArrayList...原创 2014-09-18 10:37:57 · 64 阅读 · 0 评论 -
HashMap的性能因子(Java编程思想)
我们可以通过手工调整HashMap来提高其性能,从而满足我们特定应用的需求。为了在调整HashMap时能理解性能的问题,某些术语是必须要了解的: 。容量:表中的桶位数 。初始容量:表在创建时所拥有的桶位数。HashMap和HashSet都具有允许指定初始容量的构造器 。尺寸:表中当前存储的项数 。负载因子:尺寸/容量。空表的负载因子为0...原创 2014-09-18 11:02:49 · 174 阅读 · 0 评论 -
I/O流典型的使用方式
1、缓冲输入文件 如果想打开一个文件用于字符输入,可以使用String或者File对象为参数的FileReader。为了提高速度,我们希望对那个文件进行缓冲,那么我们将产生的引用传给一个BufferedReader构造器。由于BufferedReader也提供了readLine()方法,所以这是我们最终对象和进行读取的接口。当readLine()将返回null时,也就达到了文件的末...原创 2014-09-18 17:50:36 · 69 阅读 · 0 评论 -
java NIO (Java编程思想)
jdK1.4的java.nio.*包中引入了JavaI/O类库,其目的在于提高速度。实际上,旧的I/O包已经使用nio重新实现过,以便充分利用这种速度提高,因此,即使我们不显示的用nio编写代码,也能从中受益。 速度的提高来自于所使用的结构更加接近操作系统执行I/O的方式:通道和缓冲器。我们可以把它想象成一个煤矿,通道是一个包含煤层(数据)的矿藏,而缓冲器则是派送到矿藏的卡车。...原创 2014-09-19 15:23:13 · 161 阅读 · 0 评论 -
MappedByteBuffer nio内存映射文件
内存映射文件允许我们创建和修改哪些因为太大而不能放入内存的文件。有了内存映射文件,我们就可以假定整个文件都放在内存中,而且完全可以把它当做非常大的数组来访问。这种方法极大地简化了用于修改文件的代码。import java.io.IOException;import java.io.RandomAccessFile;import java.nio.MappedByteBuffer;im...原创 2014-09-19 17:23:21 · 101 阅读 · 0 评论