摘要: 1. 一个Collection要支持foreach方式的遍历,必须实现IEnumerable接口(亦即,必须以某种方式返回IEnumerator对象)。2. IEnumerator对象具体实现了iterator(通过MoveNext(),Reset(),Current)。3. 从这两个接口的用词选择上,也可以看出其不同:IEnumerable是一个声明式的接口,声明实现该接口的class是“可枚举(enumerable)”的,但并没有说明如何实现枚举器(iterator);IEnumerator是一个实现式的接口,IEnumerator对象就是一个iterator(迭代器)。4. IEnume 阅读全文
posted @ 2013-12-03 20:59 macemers 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 在平常学习中我们经常会碰到代码块和构造器的问题,下面我用一个简单的例子来解释它的运行机制。我们先建立三个类,它们的关系是Animal (Brid的父类) | Brid (Eagle的父类) | Eagle代码如下:①public class Animal { static{ System.out.println("Animal的static代码块"); } { System.out.println("Animal的普通代码块"); } public Animal(){ System.out.println("Animal的无参构造器" 阅读全文
posted @ 2013-12-03 20:37 macemers 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 先上一张图: 1. 所有的异常都是由Throwable继承而来。 Error主要描述Java运行时的内部错误和资源耗尽错误,情况比较少见。 Exception才是主要关注的对象 2. Exception分为: 1)Runtime Exception: 由程序错误导致的--如错误类型转换(Cla... 阅读全文
posted @ 2013-12-03 17:33 macemers 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 什么是动态代理(dynamic proxy) 动态代理(以下称代理),利用Java的反射技术(Java Reflection),在运行时创建一个实现某些给定接口的新类(也称“动态代理类”)及其实例(对象) (Using Java Reflection to create dynamic implem... 阅读全文
posted @ 2013-12-03 16:09 macemers 阅读(58723) 评论(2) 推荐(3) 编辑