Java编程思想之数组

来源:互联网 发布:尚观云计算课程 编辑:程序博客网 时间:2024/05/21 10:47

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,则可以用于数组排序。