美文网首页
Java中的数组

Java中的数组

作者: 风亡小窝 | 来源:发表于2017-09-22 10:34 被阅读10次

    在java中数组是引用类型(即是对象)。对象的实际类型由创建对象时所指定的类型决定。

    Object[] objects = new String[]{};  //数组实际类型为String[]
    Map map = new HashMap();  //实际类型为HashMap
    

    相同类型的数组指向同一Class对象

    System.out.println(new int[1].getClass() == new int[1].getClass());  //true
    System.out.println(new Integer[3].getClass() == new Integer[1].getClass());  //true
    System.out.println(new int[3].getClass() == new Integer[1].getClass());  //false
    

    数组一旦创建完毕,数组的类型就不再改变,这就意味着当进行强制类型转换时如果数组的实际类型转换的类型匹配就会抛出java.lang.ClassCastException

    Object[] objects = new Object[5];  //数组一旦创建完毕,数组的类型就不再改变
    String[] strings = (String[]) objects;  //此语句抛出ClassCastException异常
    
    Object[] objects = new String[5];  //objects指向的数组的实际类型为String[]
    String[] strings = (String[]) objects;  /*转换类型与实际类型匹配,
                                              不会抛出ClassCastException异常*/
    

    类型匹配指满足Java中的多态要求,父类的引用指向子类的对象

    相关文章

      网友评论

          本文标题:Java中的数组

          本文链接:https://www.haomeiwen.com/subject/dewxextx.html