1. 数组是一种效率最高的存储和随机访问对象引用序列的方式。
2. 数组可以持有某种具体类型,这意味着可以通过编译期检查,来防止插入错误类型和抽取不当类型。
3. 数组标识符是一个引用,指向在堆中创建的一个真实对象,这个数组对象用来保存指向其他对象的引用。对象数组保存的是引用,而基本类型数组直接保存基本类型的值。
4. 初始化:Object[] a={new Object(),new Object()}和Object[] a=new Object[]{new Object(), newObject()}。后者可以在任意位置创建和初始化数组对象。
5. Java可以在函数中直接返回一个数组,也就是数组对象。
6. 多维数组用花括号把每个向量分隔开,每个向量可以具有任意不同的长度。
7. 自动包装机制对数组初始化器起作用,但不能用于数组。
8. 通常,数组与泛型不能很好结合。擦除会移除参数类型信息,而数组必须知道它们所持有的确切类型。但是,可以参数化数组本身的类型,
9. 编译器不让实例化泛型数组,但却允许创建对这种数组的引用。而且金光不能创建实际的持有泛型的数组对象,但可以创建非泛型数组,然后将其转型。
10. 一般,泛型在类或方法的边界处很有效,而在类或方法的内部,擦除通常使泛型变得不适用。
11. Array有fill(),equal(),sort(),binarySearch(),toString,hashCode(),asList()方法。System.arraycopy()为复制数组方法,只是复制对象的引用,而不是对象本身的拷贝,不会执行自动包装和拆包。
12. 反射方法getClasses()生成所有嵌套类。
13. (T [])java.lang.reflect.Array.newInstance(type,size);
14. 策略设计模式,将保持不变的事物与会发生改变的事物相分离。通过使用策略,可以将“会发生变化的代码”封装在单独类中,将此策略对象传递给总是相同的代码。
15. 只要对象实现了Comparable接口或具有关联的Comparator,则可以用于数组排序。