摘要: 1 设计模式java io的设计分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),其中包含两个设计模式1 Adapter(适配器) stream -> reader InputStreamReader ir = new InputStreamReader(System.in); 2 Decorator(装饰器) stream -> 增加了功能的streamBufferedInputStream bis = new BufferedInputStream(new FileInputStream("res/input.dat 阅读全文
posted @ 2012-05-18 20:06 _SharpCode 阅读(182) 评论(0) 推荐(0) 编辑
摘要: java泛型是用擦出实现的,即在编译时把类型信息变为object,然后运行是再动态确定类型信息如 1 //简单的泛型 2 class Test<T> 3 { 4 private T e; 5 public void set(T e){ 6 this.e = e; 7 } 8 public void print(){ 9 System.out.println(e);10 }11 }反编译后: 1 class Test 2 { 3 4 Test() 5 { 6 } 7 8 public void set(Object obj... 阅读全文
posted @ 2012-05-15 15:40 _SharpCode 阅读(154) 评论(0) 推荐(0) 编辑
摘要: Java 中定义了两类异常:1) Checked exception: 这类异常都是Exception的子类 。异常的向上抛出机制进行处理,假如子类可能产生A异常,那么在父类中也必须throws A异常。可能导致的问题:代码效率低,耦合度过高。2) Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,它们会自动被java虚拟机抛出,所以不必在异常说明中把他们列出来。java异常层次结构图:Throwable:Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例 阅读全文
posted @ 2012-05-04 01:14 _SharpCode 阅读(156) 评论(0) 推荐(0) 编辑
摘要: final通常的意思是无法改变的,可修饰:数据,方法,类 1. final修饰数据 两种用途:1不改变的编译时常量,用static final修饰 2在运行时初始化值,且不被改变,如private final int value, value的具体值通过运行参数确定2. final修饰方法 final方法主要确保在继承类中方法保持不变,而且不会被覆盖(private方法都隐式地指定为final)3. final修饰类 ... 阅读全文
posted @ 2012-05-01 23:42 _SharpCode 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 默认访问修饰符 1 类和接口的默认修饰符是包访问2 类中成员变量和方法的默认修饰符是包访问3 接口中成员变量的默认修饰符是public static final4 接口中方法的默认修饰符为public其他修饰符 名称说明备注final使用此修饰符的类不能够被继承abstract如果要使用abstract类,之前必须首先建一个继承abstract类的新... 阅读全文
posted @ 2012-04-29 02:55 _SharpCode 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 散列基础 散列的主要目的是为了快速查找元素,传统的查找方法所用的主要操作都是比较关键字,如二分法,搜索树等,定位到一个元素要做很多次操作,费时费力.而散列可以通过散列函数把关键字直接定位到元素的位置,大大提高了查询效率. 1 散列函数的选择,常用除余法,很少有完美的散列函数 2 对关键字冲突的处理,常用开发地址发,链接法等 java中的HashMap java中的HashMap采用了链接发,如图 上面的Entry就是数组中的元素,它持有一个指向下一个元素的引用,这就构成了链表。 添加元素时,先根据key的hash值得到这个元素在数组中的位置,然后就可以把这个元素放到对应... 阅读全文
posted @ 2012-04-29 02:30 _SharpCode 阅读(320) 评论(1) 推荐(0) 编辑