Java知识点整理:第十章:包装类、集合的复制、集合线程同步化(线程安全)、集合与数组的相互转换

时间:2022-12-21 23:43:29

1.包装类:

   包装类是把基本数据类型包装为对象(引用)类型。

    1.总共有8个包装类

    byte    Byte

    short   Short

    int     Integer

    long    Long

    float   Float

    double  Double

    char    Character

    boolean Boolean

 

   2.包装类的API

   3.包装类与基本数据类型的转换

      jdk5之前必须手动转换

      jdk5以后自动装箱  自动拆箱

   4.包装类是final类型的.

    包装类的对象不变,类似于字符串.

    重写了toStringhashCode  equals  compareTo

 

 

 *自定义类加载器

 *需要继承ClassLoader

 *

 *重写findClass()即可.loadClass()封装了代理模式.

 *

 * loadClass()首先会调用findLoadClass()方法来检查该类是否被加载过.如果没有被加载过就调用父类的loadClass()来尝试加载.如果父类加载器无法加载此类.就调用findClass()来查找此类并加载.

 *

 *为了确保正确的代理模式,最好不好重写loadClass()

 *只重写findClass()即可.

 


2.集合的复制:

java提供的默认的复制规则:浅层复制。

1.clone() Object类中定义

2.复制构造器

  ArrayList list = newArrayList();

  add()...

  ArrayList list1 = newArrayList(list);

 

       所有的集合都有复制构造器,都是浅层复制.

复制构造器的参数是多态的.可以复制不同类型的集合.

Collectionmap不能相互复制(结构不同)


3.集合线程同步化:

List

       Collection.synchronizedList(list)

    Map

       Collection.synchronizedMap(map)


4.集合与数组的相互转化:

数组-集合

    数组转成的集合是只读的.

    如果想要使用增删改方法,可以通过集合的复制

    将集合重新复制出一个。

 

    集合-数组

     list.toArray(T[] t);

    不带参数的方法返回值是Object[]

    可以使用重载的方法,传入一个指定类型的数组。

    返回值就是指定类型的数组。

    如果集合的长度大于给定数组的长度,那么返回的数组是重新创建的。

    如果集合的长度小于给定数组的长度,那么返回的数组是给定的那个数组对象.