Java中的数组

在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中的多态要求,父类的引用指向子类的对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 数组No11 数组:存放一组相同类型数据的数据结构 数组本身是引用数据类型,数组中的元素可以是基本数据类型...
    征程_Journey阅读 657评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 数组是由同一类型对象护着基本数据组成。 数组是对象,先定义数组名字,用动态的方式分配数组空间,再初始化的。 每个数...
    掠光者阅读 667评论 0 1
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,137评论 0 62
  • 现实生活中,鸡汤的香味能使人可以一次痛饮几大碗。味道鲜美、富含营养,是我们对鸡汤的普遍认知。然而,虽然慢火炖的鸡汤...
    张小凡diary阅读 497评论 2 2